Что делать если нужно поставить какую-то Python-библиотеку а root-прав нет? То есть в систему библиотеку никак и ничего не поставить.
Есть как минимум два способа это решить правильно!
🔸 Сделать виртуальное окружение и ставить там что угодно.
Это позволит создать полностью независимое исполняемое окружение для ваших приложений.
Все библиотеки будут храниться в домашней директории юзера а значит доступ на запись имеется.
Создать очень просто:
python3 -m venv ~/venvs/myenvname
Теперь активируем окружение
# Linux
source ~/venvs/myenvname/bin/activate
# Windows
%userprofile%\venvs\myenvname\Scripts\activate.bat
Можно ставить любые библиотеки и запускать приложение.
Это стандартный метод работы с любым проектом. Если еще не используете его, то пора начинать. Даже при наличии root доступа!
🔸 Бывает, что нет возможности запустить приложение из своего виртуального окружения. Например, его запускает какой-то сервис от вашего юзера и вставить активацию окружения вы не можете.
В этом случае можно установить библиотеки для Python не глобально в систему, а только для юзера.
Выполните этот код в консоли:
python3 -m site
Вы получите что-то такое:
sys.path = [
'/home/user',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'/home/user/.local/lib/python3.7/site-packages',
...
]
USER_BASE: '/home/user/.local'
USER_SITE: '/home/user/.local/lib/python3.7/site-packages'
ENABLE_USER_SITE: True
Нас интересует параметр USER_SITE. Это путь к пользовательским библиотекам, которые доступны по умолчанию, если они есть.
Именно сюда будут устанавливаться модули если добавить флаг --user при установке чего-либо через pip
pip install --user requests
Для этой команды не нужны root-права.
После неё можно запускать системный интерпретатор без виртуальных окружений и установленная библиотека будет доступна для текущего юзера.
Параметр USER_BASE показывает корневую директорию для хранения user-библиотек. Её можно изменить с помощью переменной окружения PYTHONUSERBASE
export PYTHONUSERBASE=~/pylibs
python3 -m site
...
USER_BASE: '/home/user/pylibs'
USER_SITE: '/home/user/pylibs/lib/python3.7/site-packages'
Получается некоторое подобие виртуального окружения для бедных 😁 которое можно менять через эту переменную (не делайте так!Лучше venv!)
🔸 Дописывание пути в PYTHONPATH
Этот способ не входит в список "двух правильных", но тоже рабочий. Здесь придётся сделать всё несколько сложней.
Сначала ставим библиотеку в любое место указывая путь установки
pip3 install -t ~/mylibs modulename
Библиотека установится без привязки к какому-либо интерпретатору. То есть по умолчанию не будет видна. Теперь в нужный момент добавляем этот путь в sys.path или в PYTHONPATH.
Не буду советовать так делать. Единственный раз когда этот способ мне пригодился и решил поставленную задачу, это при создании общей библиотеки для кластера компьютеров.
Модули лежат в сети и подгружаются для всех из одного и того же места. То есть обновлять файлы требуется только один раз а не на всех хосты отдельно.
Минусы такого подхода:
▫️Нужно всем хостам пробить нужный путь в .bashrc или ещё куда-то чтобы он сетапился на старте.
▫️Чем больше хостов тем больше нагрузка на сеть. Иногда такой способ не подходит именно по этой причине. Тогда Ansible вам в помощь.
▫️Не очень подходит если хосты с разными операционками. Некоторые библиотеки различаются для Linux и Windows (там, где есть бинарники) и приходится мудрить более сложные схемы.
#tricks#basic
В интернете появились снимки новых лун Урана и Нептуна и чуть больше связанных с ними деталей.
Одна из нептунианских - S/2021 N1 - самый тусклый спутник планеты, когда-либо открытый с Земли: в период противостояний блеск объекта лишь незначительно выше 27-й зв. вел.; объект не бросается в глаза даже на вот этом суммарном фото.
Вся троица - далёкие от своих планет нерегулярные объекты, очевидно, захваченные гравитацией гигантов тела. Тот же S/2021 N1 ещё и обращается вокруг Нептуна за 27.4 года, что также бьёт рекорд спутника Несо (26.7 года) - 60-км тела на орбите всё того же Нептуна (об этом здесь и тут).
****
Согласно традициям наименования в системах ледяных гигантов, новая луна Урана будет названа в честь героя из книг У. Шекспира или А. Поупа. Зеледеневшие же камешки на орбите Нептуна (как это принято для нерегулярных лун 8-й планеты) получат имена в честь нереид - морских нимф из древнегреческой мифологии (их есть с запасом, пока ещё хватит).
#moons#Uranus#Neptune
Epimetheus is a small moon of Saturn, discovered on 18 December 1966 by Richard Walker. It shares almost the same orbit as another moon, Janus, which was confusing for astronomers at first. They thought there was only one moon there until 1978 when it was confirmed there are two. Epimetheus is about 117 km wide and orbits Saturn every 0.69 days.
[Read more]
@googlefactss
#Epimetheus#Saturn#Moons#Space🌕🪐
🪐 Orbiting Jupiter, the tiny moon Amalthea is so porous and irregularly shaped that scientists believe it’s more akin to a loosely packed pile of rubble than a solid body. Despite being only about 250 kilometers across, Amalthea glows with a striking reddish color, likely stained by sulfur dust ejected from the neighboring volcanic moon Io. ✨
#Amalthea⚡#Jupiter⚡#moons
👉subscribe Universe Mysteries
🪐 Saturn’s moon Mimas, long thought to be a frozen and inactive ball of ice, surprised scientists in 2024 with evidence pointing to a hidden liquid ocean beneath its icy shell. Measurements of Mimas’s slight wobble in orbit, called "libration," suggest that this secret ocean lies just 20 to 30 kilometers below the moon’s cratered surface, making Mimas the newest member of the solar system’s list of ocean worlds. ✨
#moons⚡#oceans⚡#mysteries⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🪐 Jupiter's moon Callisto, once thought to be a frozen, inactive world, may actually hide a salty liquid ocean more than 100 kilometers below its icy surface. Magnetic field measurements by spacecraft like Galileo suggest that Callisto's interior is not entirely solid, but holds a hidden sea that could be as large or even larger than those found on Europa or Ganymede. ✨
#moons⚡#oceans⚡#Jupiter⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 One of the most intriguing worlds with a hidden ocean is Saturn’s tiny moon Mimas, often called the "Death Star moon" due to its resemblance to the Star Wars space station. In 2024, scientists announced strong evidence from slight wobbles in Mimas’s orbit that a liquid water ocean may exist beneath its icy crust, making this cratered, seemingly frozen world another surprising member of the solar system’s secret ocean club. ✨
#moons⚡#oceans⚡#Saturn⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Saturn’s tiny moon Pandora, just 81 kilometers wide, may hold a subsurface ocean beneath its oddly shaped, icy crust. Recent measurements of Pandora’s density and gravitational interactions with nearby moons suggest internal heat could be keeping water liquid deep inside, raising the possibility that even small, overlooked moons may hide secret oceans beneath their frozen shells. ✨
#moons⚡#oceans⚡#Saturn⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Saturn’s moon Epimetheus, just 113 kilometers wide, may hide a secret ocean beneath its surface. Studies of its density and slight orbital wobble suggest there could be a layer of liquid water deep inside, placing Epimetheus among a growing group of icy moons that may shelter hidden oceans far from the Sun. ✨
#moons⚡#oceans⚡#saturn⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Saturn’s moon Pan, only about 28 kilometers wide, orbits inside the planet’s rings and may hold an underground ocean beneath its unusual, flying-saucer-shaped ice shell. Recent studies suggest Pan's odd shape and gravitational interactions could create enough internal heat to allow liquid water to exist deep below its frozen surface, making even tiny moons like Pan potential members of the solar system’s hidden ocean world club. ✨
#moons⚡#oceans⚡#Saturn⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Neptune’s moon Proteus, one of the largest moons in the outer solar system, may hide a subsurface ocean beneath its dark, blocky surface. Studies of Proteus’s density and orbital behavior suggest that internal heat from tidal forces—gravitational squeezing by Neptune—could keep water liquid deep inside, making Proteus a surprising addition to the list of possible ocean worlds. ✨
#moons⚡#oceans⚡#neptune⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Beneath the thick ice of Saturn’s moon Titan, scientists suspect there is a hidden ocean of liquid water mixed with ammonia, possibly deeper than 50 kilometers below the surface. Titan’s dense atmosphere, rich in methane, and its secret subsurface sea make it one of the most fascinating candidates for harboring life far from Earth. ✨
#moons⚡#oceans⚡#titan⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Beneath the icy surface of Saturn's moon Enceladus, scientists have found clear evidence of a global subsurface ocean of salty water. Powerful geysers shoot out water vapor and ice particles from cracks called "tiger stripes," revealing the presence of liquid water kept warm by heat from the moon's core—making Enceladus one of the most promising places to search for life beyond Earth. ✨
#Enceladus⚡#moons⚡#oceans⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels