Что делать если нужно поставить какую-то 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
🌎 Strange hexagonal cloud patterns appear at Saturn’s north pole, baffling scientists since first being spotted by the Voyager spacecraft in 1981. This six-sided jet stream is over 29,000 kilometers wide and behaves differently from any weather phenomenon on Earth. ✨
#Saturn⚡#atmosphere⚡#mystery
👉subscribe Interesting Planet
👉more Channels
🌎 Lightning storms on Saturn are so intense that they can last for months, creating lightning bolts thousands of times more powerful than those on Earth. These "megastorms" even produce massive radio waves detectable by spacecraft orbiting the planet. ✨
#space⚡#weather⚡#Saturn
👉subscribe Interesting Planet
"Goldie Girl"
Doping Pong, digital art, 1998-2003
Это фрагмент выставки арт-группы Doping Pong, проходившей в Санкт-Петербургском Планетарии №1.
Классика российского digital art конца 90-х и начала нулевых годов.
Doping-Pong начали творить в конце прошлого века с того, что захотели воплотить виртуальную студию Уолта Диснея при Дворе Сталина — создавать психоделическое искусство, способное пройти строгую советскую цензуру. В результате этого арт-эксперимента родилась космическая мистерия "Золотая девочка" —о ребёнке, который крутит хула-хуп и постепенно превращается в планету Сатурн.
Серия "Goldie Girl" была впервые опубликована в журнале "Птюч" в формате арт-комикса, посвященного певице Люде Ракете.
Кроме электронной музыки Ракеты и Олега Кострова арт-группа Doping Pong при создании этой работы вдохновлялись творчеством ещё одного музыканта, что легко читается по названию серии.
Картины творились в эпоху эмбиент и драм-н-бэйс, поэтому в русской версии серия, названная "Золотая девочка", стала носить имя "Goldie", в честь певца, которого все мы тогда слушали с EP "Кольца Сатурна".
Премьерный показ "Goldie girl" в формате картин состоялся в 2001 году в Музее Набокова. Позже "Goldie girl" участвовала во многих выставках современного искусства: 2005 год — "Kontrast", МОМU – Музей моды, Антверпен, Бельгия. 2009 год — Международный мультимедиа фестиваль MIGZ, выставка Doping Pong на виртуальных экранах, кинотеатр 35мм, Москва, Россия. 2010 год — NewCultureFest, Virtualmuseum, выставка работ Doping Pong на виртуальных экранах, Москва, Россия.
#dopingpong#goldie#girl#saturn#digitalart
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🌕🪐
🪐 High above the north pole of Saturn, the storm known as the "Hexagon" forms a perfect six-sided jet stream wider than two Earths across. Unlike any weather pattern on Earth, this mysterious geometric cloud system has maintained its shape for decades, swirling in icy isolation since first observed by Voyager and later by the Cassini spacecraft. ✨
#Saturn⚡#Hexagon⚡#atmosphere
👉subscribe Universe Mysteries
🪐 Hidden deep inside Saturn’s rings, astronomers have discovered tiny moonlets like Daphnis that carve out delicate waves and gaps as they orbit, sculpting the rings’ sharp edges. These miniature moons cause astonishing ripples and wakes, their gravitational dance leaving patterns that shift with every pass. ✨
#Saturn⚡#moonlets⚡#rings
👉subscribe Universe Mysteries
🪐 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