Что делать если нужно поставить какую-то 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
Biz 34 yoshdamiz!
Bugun Oʻzbekiston Milliy Olimpiya qoʻmitasi tashkil etilganiga roppa-rosa 34 yil toʻldi. 1993-yil Xalqaro Olimpiya qoʻmitasining 101-sessiyasida Oʻzbekiston MOQ rasman XOQ aʼzoligiga qabul qilinganidan soʻng, mamlakatimiz delegatsiyasi 8 ta yozgi va 8 ta qishki Olimpiya oʻyinlari, shuningdek yozgi va qishki Osiyo oʻyinlari hamda boshqa nufuzli xalqaro musobaqalarda ishtirok etib kelmoqda. Mard va muzaffar sportchilarimiz ushbu startlardagi gʻalabalari bilan Vatanimiz sharafini munosib himoya qilib kelmoqda.
Bugungi kunda Oʻzbekiston Milliy Olimpiya qoʻmitasi muhtaram Prezidentimiz raisligida rivojlanishning yangi bosqichiga qadam qoʻygan. Federatsiya va assotsiatsiyalar, terma jamoalar, sportchilar va murabbiylarni har tomonlama qoʻllab-quvvatlash orqali jahon arenalaridagi yutuqlarimiz koʻlami izchil ortib bormoqda.
Qadrli yurtdoshlar!
Oʻzbekiston Milliy Olimpiya qoʻmitasi mamlakatimizda Olimpiya harakati rivoji yoʻlida xizmat qilayotgan barcha sportchilar, murabbiylar, mutaxassislar va faxriylarni ushbu qutlugʻ sana bilan samimiy tabriklaydi.
—
Нам — 34 года!
Сегодня исполняется ровно 34 года со дня основания Национального Олимпийского комитета Узбекистана. После того, как в 1993 году на 101-й сессии Международного Олимпийского комитета НОК Узбекистана был официально принят в его члены, делегация нашей страны приняла участие в 8 летних и 8 зимних Олимпийских играх, а также в летних и зимних Азиадах и других престижных международных соревнованиях. Победы наших спортсменов в этих стартах стали ярким свидетельством их мужества, мастерства и преданности Родине.
Сегодня Национальный Олимпийский комитет Узбекистана под председательством Уважаемого Президента вступил в новый этап развития. Последовательная поддержка федераций и ассоциаций, сборных команд, спортсменов и тренерского состава способствует укреплению позиций Узбекистана на мировой спортивной арене.
Дорогие соотечественники!
Национальный Олимпийский комитет Узбекистана искренне поздравляет всех спортсменов, тренеров, специалистов и ветеранов, вносящих вклад в развитие Олимпийского движения в нашей стране, с сегодняшней знаменательной датой.
#Tabrik#34yil
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Hurmatli yurtdoshlar!
Sizlarni Oʻzbekiston Respublikasi davlat mustaqilligining 34 yillik bayrami bilan chin qalbimizdan tabriklaymiz!
Mustaqillik yillarida yurtimiz ulkan o‘zgarishlarni boshdan kechirdi. Xalqimizning orzu-intilishlari, ezgu maqsadlari ro‘yobga chiqib, yangi taraqqiyot bosqichiga ko‘tarildi.
Bugun “Yangi Oʻzbekiston” g‘oyasi ostida amalga oshirilayotgan islohotlar, ilm-fan, ta’lim va texnologiyalar sohasidagi yutuqlar barchamizni yangidan-yangi marralar sari chorlamoqda.
Aziz vatandoshlar!
Yurtimizda tinchlik va barqarorlik, farovon hayot bardavom bo‘lsin! Har bir xonadonda quvonch va fayz, ezgu niyatlaringizda esa baraka hamroh bo‘lsin!
Hurmat bilan,
“Yangi Oʻzbekiston” universiteti jamoasi
🔁English
➖➖➖➖➖➖➖➖➖➖➖
#mustaqillik#34yil
⬇️Biz ijtimoiy tarmoqlarda:
Veb-sayt | Telegram | Instagram | Facebook
Тошкентдаги “Янги Ўзбекистон” боғида Мустақиллик куни муносабати билан байрам тантанаси бўлиб ўтди. Президент Шавкат Мирзиёев бутун халқимизни, хориждаги ватандошларимизни давлатимиз мустақиллигининг 34 йиллик шонли санаси билан табриклади.
—
В столичном парке «Янги Узбекистон» состоялись торжества по случаю Дня независимости. Президент Шавкат Мирзиёев сердечно поздравил весь наш народ и соотечественников за рубежом с 34-й годовщиной государственной независимости.
#Mirziyoyev#bayram#Mustaqillik#34yil
Prezident.uz|Facebook|Instagram|YouTube|X
#YangiOzbekistonda
#YangiIjtimoiyHimoya
#34Yil
🇺🇿“Barchasi xalq uchun, inson qadri uchun” — bu Prezidentimiz siyosatining bosh mezonidir.
So‘nggi ikki yil davomida Yangi O‘zbekistonda ijtimoiy himoya tizimi aynan shu tamoyil asosida mutlaqo yangi mazmun kasb etdi. Chunki Prezidentimiz doim ta’kidlaganidek, amalga oshirilayotgan har bir islohot – xalq farovonligi uchundir.
✦ 2 yil – 2 million taqdir. Bu oddiy raqam, statistika emas. Bu – ikki million insonning hayoti, his-tuyg‘ulari, orzulari va kelajagidir. Har bir taqdir – Yangi O‘zbekiston kelajagiga qo‘shilgan ulkan hissa.
Bu – orzulariga qanot topgan yoshlarning, farzandi uchun kurashayotgan onalarning, keksa ota-onasiga mehr izlayotgan farzandlarning, nogironligi bor bo‘lsa-da hayotdan umidini yo‘qotmagan insonlarning hikoyalari.
Bugun ijtimoiy himoya har bir oilaning hayotiga yangi rang olib kirmoqda. G‘amxo‘rlik – nafaqat yordam, balki inson qadrini yuksaltirish, ertangi kunga bo‘lgan ishonchni qaytarishdir.
Ijtimoiy himoya – inson uchun, inson qadri uchun!
Telegram | Х
Facebook | Instagram
#YangiOzbekistonda#YangiIjtimoiyHimoya
#34Yil
Ijtimoiy xodimlarning asl qahramonligi
Ba’zan qahramonlar maxsus libos kiymaydi. Ular oddiy insonlar kabi ko‘rinishi mumkin, lekin har kuni kimningdir hayotini yaxshilash uchun fidoyilik bilan harakat qiladi.
Ijtimoiy xodimlarning mehnati ko‘pincha ko‘zga tashlanmaydi, lekin ular og‘ir sinovlarga duch kelgan insonlarning eng yaqin tayanchiga aylanadi. Yolg‘iz keksalar, nogironligi bor shaxslar, ijtimoiy yordamga muhtoj oilalar – ularning barchasi ijtimoiy xodimlarning g‘amxo‘rligini his etadi.
Ushbu rolik orqali biz sizga ularning mashaqqatli, ammo sharafli mehnatini yaqinroq ko‘rsatmoqchimiz. Ular faqat yordam ko‘rsatish bilan cheklanmay, insonlarga umid, dalda va hayotga bo‘lgan ishonchni ham qaytarishadi.
Ijtimoiy xodimlarning fidoyiligini birga e’tirof etaylik!
📝telegram💻instagram
📝facebook🐧xcom
🎞youtube🎖ihma.uz
✨Vatan uchun, millat uchun, xalq uchun!
Bugun yurtimizning eng ulug‘ ayyomi — O‘zbekiston Respublikasi mustaqilligining 34 yilligini nishonlamoqdamiz.
🏫Al-Xorazmiy universiteti jamoasi butun xalqimizga sog‘lik, baxt, omad va yuksak marralarni zabt etishda ulkan zafarlar tilaydi!
🇺🇿Mustaqillik bayrami muborakbo‘lsin, O‘zbekiston!
🔁English
➖➖➖➖➖➖➖➖➖➖➖➖
#mustaqillik#tabrik#34yil#bayram
👇Bizning ijtimoiy tarmoqlarimiz:
Veb-sayt|Telegram |Instagram|Facebook| Aloqa-bot