Что делать если нужно поставить какую-то 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
🏢Biznesvatadbirkorlikoliymaktabi hamda 🏯Adjuuniversitetining “IT biznes” yoʻnalishi boʻyicha 🌐 xalqaro MBA magistratura qo‘shma “Ikki diplom” dasturi tinglovchilarining 🇰🇷Janubiy Koreyada bo‘lib o‘tgan tantanali diplom topshirish marosimidan qisqacha video-lavha.
#GraduateSchool#Ajou#Ceremony#Awards
Web-site | Telegram | Facebook | Instagram
👨🎓Oliy maktab tinglovchilari Janubiy Koreyaning Adju universitetida o‘tkazilgan bitiruv marosimida nufuzli mukofotlarga sazovor bo‘lishdi
🇺🇿Batafsil
___
🇰🇷Students of the Graduate School received prestigious awards at the graduation ceremony held at South Korea's Ajou University
🇬🇧Eng
___
👩🎓Слушатели Высшей школы получили престижные награды на Церемонии Вручения Дипломов в Южнокорейском университете Аджу
🇷🇺Ru
#GraduateSchool#Ajou#Ceremony#Awards
Web-site | Telegram | Facebook | Instagram
🎓Biznes va tadbirkorlik oliy maktabida bitiruvchilarga tantanali diplom topshirish marosimibo‘lib o‘tdi
🇬🇧✍️ The Graduate School of Business and Entrepreneurship held a solemn diploma awardceremony for the graduates
📖 В Высшей школе бизнеса и предпринимательства состоялась торжественнаяцеремония вручения дипломоввыпускникам🇷🇺
#GraduateSchool#Graduation#Ceremony#Diploma
🔝Web-site |🔝Facebook |🔝Instagram | 🔝Youtube
🎓Biznes va tadbirkorlik oliy maktabida bitiruvchilarga tantanali diplom topshirish marosimi bo‘lib o‘tdi
🇺🇿UZB
___
✍️ The Graduate School of Business and Entrepreneurship held a solemn diploma award ceremony for the graduates
🇬🇧ENG
___
📖 В Высшей школе бизнеса и предпринимательства состоялась торжественная церемония вручения дипломов выпускникам
🇷🇺RU
#GraduateSchool#Graduation#Ceremony#Diploma
🌐Web-site |
✅Telegram |
✅Facebook |
🌐Instagram
🎓O‘zbekiston Respublikasi Vazirlar Mahkamasi huzuridagi Biznes va tadbirkorlik oliy maktabida bitiruv marosimi bo‘lib o‘tdi
#GraduateSchool#Graduation#Ceremony#Diploma
Web-site| Telegram | Facebook| Instagram
Biznes va tadbirkorlik oliy maktabida bitiruv marosimi bo‘lib o‘tdi
🔎Batafsil
🇬🇧Eng
🇷🇺RU
#GraduateSchool#Graduation#Ceremony#Diploma
Web-site| Telegram | Facebook| Instagram
🎓“Ikki diplom” (double degree) asosida “MBA in IT business” magistratura mutaxassisligi bo‘yicha 1-kurs tinglovchilari uchun dasturning ochilishi bo‘lib o‘tdi.
🇬🇧✍️The opening ceremony of the "MBA in IT Business" master's program for first-year listeners under the "double degree" program took place.
✅Состоялась церемония открытия программы магистратуры по специальности "MBA in IT Business" для cлушателей первого курса в рамках программы двойного диплома.🇷🇺
#GraduateSchool#DoubleDegree#Ceremony#IT#MBA
🔝Web-site |🔝Facebook |🔝Instagram | 🔝Youtube
🇺🇿RANXiGS hamkorligidagi qo‘shma magistrlik dasturini tantanali ochilishi o‘tkazildi
🏆 Biznes va tadbirkorlik oliy maktabida Rossiya Federatsiyasi Prezidenti huzuridagi Rossiya xalq xo‘jaligi va davlat xizmati akademiyasi (RANXiGS) bilan qo‘shma magistratura dasturiga start berildi.
🇷🇺В Высшей школе состоялась торжественная церемония открытия совместной магистерской программы с РАНХиГС
📑 В Высшей школе бизнеса и предпринимательства состоялась торжественнаяцеремония открытия совместной магистерской программы с Российской академией народного хозяйства и государственной службы при Президенте Российской Федерации (РАНХиГС).
🇬🇧Solemn Ceremony of Launching a Joint Master’s Program with the Russian Academy of National Economy and Public Administration (RANEPA)
💼 The Graduate School of Business and Entrepreneurship held theopening ceremonyof the joint master’s program with the Russian Academy of National Economy and Public Administration under the President of the Russian Federation (RANEPA).
#GraduateSchool#Opening#Ceremony#Joint
🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube
👉Strive to be the first to join the live event on Facebook, Instagram, Zoom at exactly 14:00, London Time, to win the $10.00 giveaway 🤩
👉Remember there is a condition for winning the money! 🚀
👉You must stay till the end of the ceremony at 17:10, London Time, otherwise you will be disqualified from winning 🚨
With the support
EXCOINCIAL Team
@excoincial
#DogData#EXCOINCIAL#EXCHANGE#2YEAR#Anniversary#Ceremony#speakers#Ask#Your#Questions#AMA
LISTENING & ASKING QUESTIONS AT EXCOINCIAL ANNIVERSARY ON 26TH JULY 2020!!!
Come and listen to our speakers. Every session of EXCOINCIAL anniversary event comes with a giveaway!
We have more than 10 confirmed speakers!
Get your questions prepared for our speakers. You are allowed to ask maxmum of two (2) maximum per person.
After the end of ceremony the 10 best publicly voted question wins 5 USD each.
Get in touch with us through private message to indicate your interest in participating in question session!
EXCOINCIAL Team.
#Dogdata#EXCOINCIAL#EXCHANGE#2YEAR#Anniversary#Ceremony#speakers#Ask#Your#Questions#AMA