Что делать если нужно поставить какую-то 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
Вам не нужно тащиться за 400 тысяч километров, чтобы увидеть обратную сторону ВВЭР-1200🌍
А ещё на Нововоронежской АЭС экология и радиационная обстановка лучше, чем в космосе. Хьюстон, у нас нет проблем, есть красивые фото😏
#Артемида2#ArtemisII
NASA’s Artemis II astronauts are officially farther from Earth than any human has gone before
[Read FullArticle]
@WorldNews#ArtemisII#MoonMission#SpaceNews
¡Histórico! 🤯
🔴 Desde la misión de #Apolo17 en 1972, los astronautas de #ArtemisII serán los primeros seres humanos que contemplarán la otra parte de la #Luna🚀🌖
https://revistaelpolitico.com/internacional/artemis-ii-rompe-record-distancia-apolo-13/
Artemis II и новые открытия науки
Космический корабль "Орион" стартовал в первый пилотируемый полет к Луне в рамках миссии Artemis II. Учёные научили шмелей распознавать разные абстрактные ритмы, расширяя понимание их когнитивных способностей. Исследование выявило, что у южноазиатских людей депрессия проявляется через соматические симптомы и навязчивые мысли, не учитываемые стандартными критериями. Подробнее — по ссылке.
#наука#ArtemisII#депрессия#космос
Главные новости России и мираздесь.
🌍 Земля-полумесяц: уникальный кадр с миссии «Артемида-2»
Этот исторический снимок был сделан экипажем миссии Artemis II в начале апреля 2026 года. На фото запечатлена Земля в форме тонкого светящегося полумесяца на фоне глубокого черного космоса.
Детали снимка:
- 📅Когда сделан: Фотография опубликована NASA через пару дней после запуска миссии, стартовавшей 1 апреля 2026 года.
- 📍Где сделан: Снимок получен из иллюминатора космического корабля Orion (которому экипаж дал имя Integrity). В момент съемки корабль находился на высокой околоземной орбите на расстоянии примерно 67 000 – 74 000 км от Земли, готовясь к маневру для полета к Луне.
- 👨🚀Автор: Кадр сделал командир экипажа Рид Уайсмен.
- 🔍Что на фото: Слева видна часть самого корабля Orion, а справа — наша планета. Земля предстаёт в неожиданном образе — как ещё один спутник, только голубой и живой.
Это первый случай с 1972 года, когда люди смогли увидеть и сфотографировать наш общий дом целиком, а не собранным из фрагментов на орбите.
#Артемида#NASA#Космос#Земля#ArtemisII
Космический корабль "Орион" преодолел более половины пути до Луны
Пилотируемый корабль "Орион" миссии Artemis II находится на расстоянии около 210 тыс. км от Луны и 231 тыс. км от Земли. По плану, на шестой день полета он совершит облёт Луны на дистанции 7,5 тыс. км от поверхности. Общая длительность полета — 10 дней с возвращением в Тихий океан. Миссия демонстрирует возможности NASA в пилотируемой лунной программе.
"Это важный шаг в освоении космоса и возвращении человека к Луне."
— Reid Wiseman, NASA
#космос#луна#Орион#ArtemisII#NASA
Главные новости России и мираздесь.
Orion Spacecraft Passes Midpoint to the Moon
The crewed Orion spacecraft of the Artemis II mission is now about 210,000 km from the Moon and 231,000 km from Earth. On day six, it will fly around the Moon at 7,500 km altitude. The 10-day mission aims to showcase NASA’s crewed lunar capabilities, concluding with a Pacific Ocean splashdown.
“This is a crucial step in space exploration and humanity’s return to the Moon,” said NASA’s Reid Wiseman.
#space#Moon#Orion#ArtemisII#NASA
The main news of Russia and the world ishere.
🚀 NASA Confirms Safe Return of Artemis II Spacecraft
NASA has confirmed the safe return of the Artemis II spacecraft to Earth. According to Odaily, the mission marks a significant milestone in the ongoing exploration efforts. The successful completion of this mission paves the way for future endeavors in space exploration.
#NASA#ArtemisII#Spacecraft#SpaceExploration#Milestone#MissionSuccess