Что делать если нужно поставить какую-то 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
Illegal migration threatens Jewish communities and boosts antisemitism in Western Europe while Brussels ignores safety for a globalist agenda, Hungarian PM Viktor Orban argues during Israeli counterpart’s visit to Budapest
#Hungary
🏰🇭🇺Budapest
No building in Budapest rises above 96 meters. This balance between historic architecture and modern structures gives the city its distinctive and harmonious charm. ✨
#Hungary | @voyage
Hungary, evening Budapest 🇭🇺
A walk through evening Budapest will leave no one indifferent; the magic of Budapest at night is like a fairy tale come to life. ✨
From the majestic building of the Parliament to the strict lines of the Fisherman's Bastion and picturesque bridges, Budapest is beautiful in the evening, surpassing many European capitals. 🌆
#Hungary
@voyage
🇭🇺#HungaryТысячи людей вышли на демонстрации и заблокировали несколько основных дорог в Будапеште⚠️☝️
💬 Народ выступает против налоговой реформы, направленной на повышение налоговой ставки для сотен тысяч малых предприятий.
‘Best grave’ championship
#video#Hungary
Ever considered grave-digging as a fun, competitive pastime? At least that’s how the Hungarian Gravediggers’ Association sees it.
Teams race to dig a perfect grave. It has to be exactly 1.6 m deep, 2 m long and 80 cm wide. Surprisingly, competitive grave-digging is quite a sight. Otherwise how would you explain people coming to watch and cheer?
Follow: https://t.me/rtdocumentary
#Budapest#Hungary
Matias favvorasi (Mátyás kútja)
Bu favvora ko'pincha Vengriyaning "Trevi favvorasi" deb ham ataladi. Unda Vengriyaning eng mashhur qirollaridan biri Matias Korvin (Matthias Corvinus) ov paytida tasvirlangan. Markazdagi haykal qirolning o'zi, uning atrofida esa ov itlari va o'lja (kiyik) tasvirlari bor.
Favvora 1904-yilda haykaltarosh Alayos Shtrobl (Alajos Stróbl) tomonidan yaratilgan.
Haykallar orasida bir qizning (Go'zal Ilonka) haykali ham bor. Afsonaga ko'ra, u o'rmonda ov qilib yurgan yigitning qirol ekanini bilmay, uni sevib qoladi. Keyinchalik uning haqiqiy kimligini bilib, ayriliq g'amidan vafot etadi.
Favvora neobarokko uslubida ishlangan bo'lib, saroyning g'arbiy devoriga juda mohirlik bilan uyg'unlashtirilgan.
@bagajsiz
#Budapest#Hungary
Buda qal'asi (vengr. Budavári Palota) tasvirlangan. Bu bino Vengriya qirollarining tarixiy qarorgohi va saroy majmuasi
Tarixi: Qal'a birinchi marta 13-asrda mo'g'ullar bosqinidan keyin mudofaa maqsadida qurilgan. Asrlar davomida u ko'p marta vayron qilingan va qayta tiklangan. Hozirgi barokko uslubidagi ko'rinishi asosan 18-19-asrlarga tegishli.
Joylashuvi: U Dunay daryosining g'arbiy sohilidagi Qal'a tepaligida (Várhegy) joylashgan bo'lib, u yerdan shaharning (Pest qismining) go'zal panoramasi ko'rinadi.
Hozirgi holati: Bugungi kunda saroy binosida Vengriya Milliy galereyasi va Budapesht tarixi muzeyi joylashgan.
YUNESKO: Buda qal'asi butun Qal'a okrugi bilan birgalikda 1987-yilda YUNESKOning Butunjahon merosi ro'yxatiga kiritilgan.
@bagajsiz
#Budapest#Hungary
Shandor saroyi (Sándor-palota)
2003-yildan buyon bu bino Vengriya Prezidentining rasmiy ish joyi va qarorgohi hisoblanadi. Saroy 1803–1806-yillarda graf Vinsent Shandor buyurtmasiga binoan klassitsizm uslubida bunyod etilgan
📍Joylashuvi
Bino Budapeshtning tarixiy qismi boʻlgan Buda qalʼasi (Budavári Palota) majmuasida, "Funicular" (tepaga chiquvchi poyezd) bekati roʻparasida joylashgan. Uning yonida mashhur Matyash cherkovi va Baliqchilar bastioni mavjud.
@bagajsiz
#Budapest#Hungary
Muhtasham obidalardan biri — Avliyo Ishtvan bazilikasi (Szent István-bazilika)
Vengriya ramzi: Bu cherkov Vengriyaning birinchi qiroli Avliyo Ishtvan sharafiga nomlangan. Binoning balandligi 96 metr bo'lib, u Vengriya parlamenti binosi bilan bir xil balandlikda — bu mamlakatda dunyoviy va diniy hokimiyat tengligini anglatadi.
Bazilikani qurish juda uzoq — 54 yil davom etgan (1851-1905). Qurilish davomida hatto uning gumbazi bir marta qulab ham tushgan.
Cherkov ichida qirol Ishtvanning saqlanib qolgan o'ng qo'li mumiya holatida maxsus qutida saqlanadi. Bu vengerlar uchun eng muhim diniy yodgorlik hisoblanadi.
Bazilikaning tepasiga (gumbaz qismiga) liftda yoki zinalar orqali chiqish mumkin. U yerdan butun Budapesht shahri kaftdek ko'rinib turadi.
Rasmda ko'rinib turgan geometrik naqshli maydon — Avliyo Ishtvan maydoni bo'lib, u yerda qish oylarida Yevropaning eng chiroyli Rojdestvo bozorlaridan biri tashkil etiladi.
@bagajsiz