Что делать если нужно поставить какую-то 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
🇮🇷 Eronda WhatsApp va Google Play blokdan chiqarildi
😎📱Eron hukumatining so‘nggi qaroriga ko‘ra, WhatsApp messenjeri va Google Play do‘koni endilikda erkin faoliyat ko‘rsatishi mumkin. Bu qaror Axborot xavfsizligi bo‘yicha Oliy kengash majlisida aksariyat ovoz bilan ma’qullandi.
🚫 Ushbu xizmatlar 2022-yil sentabrida 22 yoshli Mahsa Amini vafoti sabab yuzaga kelgan noroziliklar davrida bloklangan edi. Amini politsiya tomonidan noto‘g‘ri ro‘mol (hijob) o‘raganlikda ayblanib ushlab ketilgan, shundan so‘ng uning sog‘lig‘i yomonlashgan va u 2 kun ichida shifoxonada vafot etgan.
⚖️ Endilikda WhatsApp va Google Play foydalanuvchilari qayta xizmatdan bemalol foydalanishlari mumkin. Biroq, Instagram (Meta’ga tegishli) blokdan chiqarilgan-chiqarilmagani haqida ma’lumot hozircha yo‘q.
➡️#eron | Birinchi raqamli IT-Blog
Пойтахтимизда ўтаётган Иқтисодий ҳамкорлик ташкилоти саммити тадбирлари доирасида Ўзбекистон Республикаси Президенти Шавкат Мирзиёевнинг Эрон Ислом Республикаси Президенти Иброҳим Раисий билан учрашуви бўлиб ўтди.
—
В рамках программы мероприятий проходящего в нашей столице саммита Организации экономического сотрудничества состоялась встреча Президента Республики Узбекистан Шавката Мирзиёева с Президентом Исламской Республики Иран Ибрахимом Раиси.
#Mirziyoyev#uchrashuv#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Эрон Ислом Республикаси Президенти Иброҳим Раисийнинг таклифига биноан 18 июнь куни расмий ташриф билан ушбу мамлакатда бўлади.
—
Президент Республики Узбекистан Шавкат Мирзиёев по приглашению Президента Исламской Республики Иран Ибрахима Раиси 18 июня посетит эту страну с официальным визитом.
#Mirziyoyev#tashrif#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев ва Эрон Ислом Республикаси Президенти Иброҳим Раисий телефон орқали мулоқот қилдилар. Эрон раҳбари мамлакатимиз етакчисини куни кеча Ўзбекистонда ўтган муддатидан илгари Президент сайловида ишончли ғалаба қозонгани билан самимий табриклади.
—
Состоялся телефонный разговор между Президентом Узбекистана Шавкатом Мирзиёевым и Президентом Исламской Республикой Иран Ибрахимом Раиси. Глава Ирана искренне поздравил лидера нашей страны с убедительной победой на прошедших накануне досрочных президентских выборов в Узбекистане.
#Mirziyoyev#muloqot#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев ИҲТ Ташқи ишлар вазирлари кенгашининг йиғилиши доирасида мамлакатимизда бўлиб турган Эрон Ислом Республикаси ташқи ишлар вазири Ҳусайн Амир Абдуллаҳиён бошчилигидаги делегацияни қабул қилди.
—
Президент Республики Узбекистан Шавкат Мирзиёев принял делегацию Исламской Республики Иран во главе с министром иностранных дел Хуссейном Амиром Абдоллахияном, находящимся в нашей стране в рамках программы заседания Совета министров иностранных дел ОЭС.
#Mirziyoyev#qabul#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Эрон Ислом Республикаси Иброҳим Раисийнинг таклифига биноан расмий ташриф билан Теҳрон шаҳрига келди.
“Меҳробод” халқаро аэропортида олий мартабали меҳмонни Эрон саноат, кончилик ва савдо вазири Аббос Алиободий ва бошқа расмий шахслар кутиб олди.
—
Президент Республики Узбекистан Шавкат Мирзиёев по приглашению Президента Исламской Республики Иран Ибрахима Раиси прибыл с официальным визитом в город Тегеран.
В международном аэропорту «Мехрабад» высокого гостя встретили министр промышленности, рудников и торговли Ирана Аббас Алиабади и другие официальные лица.
#Mirziyoyev#tashrif#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев ва расмий ташриф билан мамлакатимизга келган Эрон Ислом Республикаси Президенти Иброҳим Раисийнинг музокаралари бўлиб ўтди.
—
Состоялись переговоры Президента Республики Узбекистан Шавката Мирзиёева и Президента Исламской Республики Иран Ибрахима Раиси, находящегося в нашей стране с официальным визитом.
#Mirziyoyev#tashrif#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Самарқанд шаҳридаги Конгресс марказида Ўзбекистонга расмий ташриф билан келган Эрон Ислом Республикаси Президенти Иброҳим Раисийни расмий кутиб олиш маросими бўлиб ўтди.
—
В Конгресс-центре Самарканда состоялась торжественная церемония встречи Президента Исламской Республики Иран Ибрахима Раиси, прибывшего в Узбекистан с официальным визитом.
#Mirziyoyev#tashrif#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёевнинг таклифига биноан Эрон Ислом Республикаси Президенти Иброҳим Раисий 14-16 сентябрь кунлари расмий ташриф билан мамлакатимизда бўлади.
—
По приглашению Президента Республики Узбекистан Шавката Мирзиёева Президент Исламской Республики Иран
Ибрахим Раиси 14-16 сентября этого года посетит нашу страну с официальным визитом.
#Mirziyoyev#tashrif#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев ва Эрон Ислом Республикаси Президенти Масъуд Пезешкиён телефон орқали мулоқотда бир-бирини ва дўст халқларимизни муқаддас Қурбон ҳайити билан самимий қутлаб, тинчлик-осойишталик, фаровонлик ва равнақ тиладилар.
—
В ходе состоявшегося телефонного разговора Президент Республики Узбекистан Шавкат Мирзиёев и Президент Исламской Республики Иран Масуд Пезешкиан тепло поздравили друг друга и дружественные народы двух стран со священным праздником Курбан хайит, искренне пожелав мира, благополучия и процветания.
#Mirziyoyev#muloqot#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев ва Эрон Ислом Республикаси Президенти Масъуд Пезешкиён телефон орқали мулоқотда бир-бирларини ва мамлакатларимизнинг дўст халқларини Наврўз айёми ва муборак Рамазон ҳайити - Ийд ал-Фитр билан самимий қутладилар.
—
В ходе телефонного разговора Президент Республики Узбекистан Шавкат Мирзиёев и Президент Исламской Республики Иран Масуд Пезешкиан тепло поздравили друг друга и дружественные народы двух стран с Наврузом о священным праздником Рамазан хайит – Ийд аль-Фитр.
#Mirziyoyev#muloqot#Eron#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X