Что делать если нужно поставить какую-то 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
🌐 Young professionals from Uzbekistan🇺🇿, Kazakhstan🇰🇿, the Kyrgyz Republic🇰🇬, Tajikistan🇹🇯, and Turkmenistan🇹🇲 — this is your chance to join the World Bank, International Finance Corporation (IFC), or Multilateral Investment Guarantee Agency (MIGA)!
🤝 Successful candidates will receive a 2-year term contract as mid-career staff (GF level), with the possibility of a 5-year renewable appointment based on performance.
🧭 Work locations include Washington, DC, or one of the World Bank Group (WBG) country offices across the globe.
🏁 Launch your career at the WBG through the Young Professionals Program — designed for dynamic leaders who are ready to contribute to ending extreme poverty and boosting shared prosperity.
➡️ Eligibility requirements:
✅ National of a World Bank Group member country.
✅ At least 4-6 years of full-time professional experience.
✅ Relevant master’s degree (or higher) completed by September 1, 2026.
✅ Excellent English communication skills (fluency in other languages might be advantageous to your application).
✅ Not currently employed at the WBG and not restricted by its eligibility policy.
📝 Applications are open September 1–30, 2025: http://bit.ly/3K5u395
📢Please share with eligible candidates across Central Asia and encourage them to apply.
#WBGYPP
World Bank Young Professional Program 2026 (WBG YPP)
Apply: https://opportunitiescorners.com/world-bank-group-young-professionals-program/
Early Career to Start a Career with World Bank for a 5 Year Contract.
It Covers All Expenses and the Training will be in Washington DC.
Deadline: 30th Sept 2025
#WBGYPP#YoungProfessionalsProgram#WorldBankGroup#OpportunitiesCorners
🌐 Hey, young professionals from #CentralAsia, including those from #Uzbekistan, #Kazakhstan, #KyrgyzRepublic, #Tajikistan, and #Turkmenistan, apply for the World Bank Group's Young Professional Program (WBG YPP) to join our global team!
🤝 Through the WBG YPP, we select top talent to advance the World Bank Group’s mission. Nearly a thousand YPP alumni work at the World Bank Group today, at the World Bank, IFC, and MIGA.
Eligibility Requirements
✅ Date of birth on or after October 1, 1992.
✅ Nationality of a WBG member country (nationals of all Central Asian countries are eligible to apply).
✅ Over 4 years of full-time work experience after successfully completing undergraduate studies.
✅ Completion of a masters-level degree or equivalent in a relevant field, or a higher qualification in a relevant field, before September 1, 2025.
✅ Excellent command of spoken and written English language (fluency in other languages might be advantageous to your application).
Contract Terms
📝 If you are invited to join the Program, your offer will include a 5-year term contract as a mid-career staff member (GF level) that may be renewable based on performance.
🛂 You also might be eligible for a US visa (G-type) for you and your dependents.
🌍 You may be located in Washington, DC, or any of the WBG country offices worldwide, and must be prepared to relocate accordingly.
🔎 Learn more: http://wrld.bg/wOKz50T4hQQ#WBGYPP