Что делать если нужно поставить какую-то 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
Ar-Riyodda ISSAning navbatdagi Bosh Assambleyasi oʻtkazildi
Bugun Islom birdamligi sport assotsiatsiyasining (ISSA) 14-Bosh Assambleyasi boʻlib oʻtdi. Tashkilot kelajagiga oid qator muhim masalalar koʻrib chiqilgan tadbirda Oʻzbekiston nomidan Sport vaziri Adham Ikramov hamda MOQ Xalqaro aloqalar va protokol departamenti direktori Kamoliddin Ergashev ishtirok etdi.
—
В Эр-Рияде состоялась очередная Генеральная Ассамблея ISSA
Сегодня прошла 14-я Генеральная Ассамблея Спортивной ассоциации Исламской солидарности (ISSA). На мероприятии, где были рассмотрены важные вопросы, касающиеся будущего организации, Узбекистан представляли министр Спорта Адхам Икрамов и директор департамента Международных отношений и протокола НОК Камолиддин Эргашев.
#Riyod2025#BoshAssambleya
👉@OlympicUz
olympic.uz I YouTube I Instagram I
FIA Bosh Assambleyasi doirasidagi tadbirlarga rasman start berildi
“Oʻzbekiston” xalqaro forumlar saroyida FIA Bosh Assambleya haftaligining tantanali ochilish marosimi boʻlib oʻtdi. FIA Prezidenti Muhammad Ben Sulayem, Sport vazirligi va MOQ rahbariyati, shuningdek, xalqaro tashkilot tarkibiga kiruvchi barcha yoʻnalishlarning mutasaddilari ishtirok etishdi.
Tadbirda mamlakatimiz nomidan soʻz olgan Sport vaziri Adham Ikramov barcha mehmonlarni qutlab, yurtimizda sport sohasida olib borilayotgan islohotlar haqida toʻxtaldi. Shuningdek, janob Ben Sulayem Markaziy Osiyo mintaqasida ilk bor oʻtkazilayotgan avtosport olamidagi mazkur tadbirning ahamiyati haqida gapirdi va yil davomida turli yoʻnalishlarda faollik koʻrsatgan jamoalar hamda tashkilotlarni taqdirladi.
—
Официально дан старт мероприятиям в рамках Генеральной ассамблеи FIA
Во Дворце международных форумов «Узбекистан» состоялось торжественное открытие недели Генеральной Ассамблеи FIA. В церемонии приняли участие Президент FIA Мохаммед Бен Сулайем, руководство Министерства спорта и Национального Олимпийского комитета, а также представители различных направлений, входящие в структуру международной федерации.
На мероприятии Министр спорта Адхам Икрамов, выступая от имени нашей страны, поздравил всех гостей и отметил реформы, которые проводятся в Узбекистане в сфере спорта. В свою очередь, господин Бен Сулайем подчеркнул значимость данного события в мире автоспорта, которое впервые проходит в регионе Центральной Азии, и наградил команды и организации, проявившие активность в различных направлениях в течение года.
#FIA#BoshAssambleya
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Osiyo Olimpiya kengashining tarixiy Bosh Assambleyasidan lahzalar
—
Моменты с исторической Генеральной Ассамблеи Олимпийского совета Азии
—
Footage from the historic General Assembly of the Olympic Council of Asia
#OOK#BoshAssambleya
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Shayx Javʼan bin Hamad Ol Soniy Toshkentga tashrif buyurdi
Poytaxtimizda oʻtkaziladigan Osiyo Olimpiya kengashi 46-Bosh Assambleyasining faxriy mehmonlaridan biri – Milliy Olimpiya qoʻmitalari assotsiatsiyasi (ANOC) raisining birinchi oʻrinbosari, Qatar Olimpiya qoʻmitasi prezidenti Shayx Javʼan bin Hamad Ol Soniy Toshkentga yetib keldi.
Martabali mehmonni Islom Karimov nomidagi Toshkent xalqaro aeroportida Sport vazirligi hamda Milliy Olimpiya qoʻmitasi rahbariyati kutib oldi.
Maʼlumot uchun, Shayx Javʼan bin Hamad Ol Soniy Osiyo Olimpiya kengashining 46-Bosh Assambleyasi doirasida tashkilot rahbarligi uchun oʻtkaziladigan saylovda yagona nomzod sifatida koʻrsatilgan.
—
Шейх Джоаан бин Хамад Аль Тани прибыл в Ташкент
В столицу с официальным визитом прибыл первый заместитель председателя Ассоциации Национальных Олимпийских комитетов (ANOC), президент Олимпийского комитета Катара шейх Джоаан бин Хамад Аль Тани, который является одним из почётных гостей 46-й Генеральной Ассамблеи Олимпийского совета Азии.
Господина Аль Тани в международном аэропорту имени Ислама Каримова встретило руководство Министерства спорта и Национального Олимпийского комитета.
Для сведения, в рамках 46-й Генеральной Ассамблеи ОСА шейх Джоаан бин Хамад Аль Тани выдвинут единственным кандидатом на выборы руководителя организации.
#OOK#BoshAssambleya
👉@OlympicUz
olympic.uz I YouTube I Instagram I
26-yanvar kuni poytaxtimiz Toshkentda Osiyo sporti uchun yilning eng muhim voqealaridan biri – Osiyo Olimpiya kengashining 46-Bosh Assambleyasi boʻlib oʻtadi. Qitʼamizning 45 mamlakatidan Milliy Olimpiya qoʻmitalari va xalqaro sport ekspertlari ishtirokida oʻtadigan ushbu nufuzli tadbir Yangi Oʻzbekistonning yirik xalqaro anjumanlarni yuksak saviyada tashkil etish va oʻtkazish salohiyatini yana bir bor namoyon etadi.
—
26 января в нашей столице Ташкенте состоится одно из самых значимых событий года для Азиатского спорта — 46-я Генеральная Ассамблея Олимпийского совета Азии. В этом престижном форуме примут участие представители Национальных Олимпийских комитетов и международные спортивные эксперты из 45 стран континента. Мероприятие в очередной раз продемонстрирует высокий потенциал Нового Узбекистана в организации и проведении крупных международных мероприятий на самом высоком уровне.
#OOK#BoshAssambleya
👉@OlympicUz
olympic.uz I YouTube I Instagram I
OOK 46-Bosh Assambleyasiga tayyorgarlik masalalari muhokama qilindi
Joriy yilning 26-yanvar kuni Toshkent shahri Osiyo Olimpiya kengashining (OOK) 46-Bosh Assambleyasiga mezbonlik qiladi. Ayni paytda mazkur nufuzli tadbirni yuqori saviyada oʻtkazish maqsadida keng koʻlamli tayyorgarlik ishlari amalga oshirilmoqda. Bugun Sport vazirligida ushbu jarayonlarga bagʻishlangan yigʻilish boʻlib oʻtdi.
—
Ташкент готов принять 46-Генеральную Ассамблею ОСА
26 января текущего года в Ташкенте пройдёт 46-Генеральная Ассамблея Олимпийского совета Азии (ОСА). В настоящее время ведётся масштабная подготовка к проведению этого престижного мероприятия на высоком уровне. Сегодня в Министерстве спорта состоялось совещание, посвящённое организационным вопросам.
#OOK#BoshAssambleya
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Xalqaro tashkilotlar rahbariyatining poytaxtimizga kelishi davom etadi
Toshkentga Butunjahon antidoping agentligi (WADA) prezidenti Vitold Banka hamda Xalqaro Olimpiya qoʻmitasining Xalqaro aloqalar, Olimpiya birdamligi va Olympism365 loyihasi boʻyicha direktori Jeyms Makleod tashrif buyurdi. Martabali mehmonlarni Sport vaziri Adham Ikramov va MOQ mas’ullari kutib oldi.
Maʼlumot uchun, 26-yanvar kuni Osiyo Olimpiya kengashining 46-Bosh Assambleyasi, 26–27-yanvar kunlari esa antidoping sohasiga oid xalqaro forumlar oʻtkazilishi rejalashtirilgan.
—
Ташкент продолжает принимать руководителей международных организаций
В столицу прибыл президент Всемирного антидопингового агентства (WADA) Витольд Банька, а также директор Международного Олимпийского комитета по международным связям, Олимпийской солидарности и проекту Olympism365 Джеймс Маклеод. Высокопочётных гостей встретили Министр спорта Адхам Икрамов и представители НОК.
Для сведения, 26 января состоится 46-я Генеральная Ассамблея Олимпийского совета Азии, а 26–27 января запланировано проведение международных форумов, посвящённых вопросам антидопинга.
#BoshAssambleya#WADA
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Toshkentda Osiyo Olimpiya kengashining 46-Bosh Assambleyasi bo‘lib o‘tdi
Poytaxtimiz Toshkent shahrida Osiyo Olimpiya kengashining 46-Bosh Assambleyasi bo‘lib o‘tdi. Nufuzli anjumanda Osiyo Olimpiya kengashi va unga a’zo Milliy Olimpiya qo‘mitalari vakillari, Xalqaro Olimpiya qo‘mitasi hamda yetakchi sport tashkilotlarining rahbarlari, shuningdek, O‘zbekiston Respublikasi Sport vazirligi, Milliy Olimpiya va Paralimpiya qo‘mitalari rahbariyati ishtirok etdi.
—
В Ташкенте состоялась 46-я Генеральная Ассамблея Олимпийского совета Азии
В Ташкенте прошла 46-я Генеральная Ассамблея Олимпийского совета Азии. В работе престижного форума приняли участие представители Олимпийского совета Азии и входящих в его состав Национальных Олимпийских комитетов, главы Международного Олимпийского комитета и ведущих спортивных организаций, а также руководство Министерства спорта Республики Узбекистан, Национальных Олимпийского и Паралимпийского комитетов.
#OOK#BoshAssambleya#Toshkent2029
👉@OlympicUz
olympic.uz I YouTube I Instagram I