Что делать если нужно поставить какую-то 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
❗️Il sottosegretario alla cultura Vittorio #Sgarbi è stato condannato alla pena pecuniaria di 2.000 euro per diffamazione ai danni di Virginia #Raggi. Il giudice monocratico di Roma ha disposto anche una provvisionale di 20mila euro in favore dell'ex sindaca di Roma
@UltimoraPolitics
https://x.com/SavinoBalzano/status/1986356173591773612?t=9mKQhyQM9sEH82K7RZxm3w&s=19
CROLLA UNA STRUTTURA CHE AVEVA 1200 ANNI A #ROMA: QUANDO CHIEDIAMO LE DIMISSIONI A #GUALTIERI?
Devo confessarvi che questa ossessiva insistenza sulle dichiarazioni della #Zakharova comincia a puzzarmi. Sì, per carità, sono state infelici perché pronunciate mentre un operaio era sotto le macerie. Ma insomma, in quanto a uscite infelici, la nostra classe politica non è che abbia molto da insegnare. Sergio Mattarella ha paragonato i russi al Terzo Reich: non saprei cosa sia peggio.
Eppure alcuni telegiornali, il TG Draghi in prima fila, non riescono più a trovare aggettivi da riservare alle parole della portavoce del ministro degli esteri russo: immonde, barbare, invereconde, e chi più ne ha più ne metta. E la miseria! Quando il coro è così univoco e assordante, c’è da interrogarsi a fondo.
Uscita infelice, vero (a mio avviso, più per il tempismo che per il merito), però noi siamo quelli che davano della “culona inchiavabile” alla cancelliera tedesca. Non pubblicamente, noterà qualcuno, va bene, ma l’uscita fu oltremodo “colorita”.
E allora perché si insiste tanto? Domandatevi — col massimo dell’onestà intellettuale che riuscite a portare — che cosa sarebbe accaduto se al Campidoglio ci fosse stata Virginia Raggi. Secondo voi, che cosa sarebbe successo? Guardate i giornali di qualche anno fa: alla #Raggi veniva addossata qualsiasi responsabilità, anche la più assurda, e le notizie di Roma erano sempre in prima pagina, ogni sera, anche sul TG Draghi. A Virginia si riservava sempre l’apertura e gli attacchi erano ferocissimi, notoriamente anche volgari.
È curioso che crolli la Torre dei Conti, un edificio che stava lì, dritto dritto, da 1200 anni, e nessuno abbia nulla da dire a chi ha commissionato i lavori di “restauro”. Quasi sette milioni di euro del #PNRR (a debito) per demolire un edificio storico nel cuore di Roma. Vi sembra accettabile? La vicenda peraltro appare controversa: chi abitava attorno all’edificio era preoccupato da tempo.
Dico, ma ve lo ricordate cosa accadde nel 2010 col crollo della Palestra dei Gladiatori a Pompei? Al governo c’era #Berlusconi e alla Cultura Sandro Bondi, quello delle poesie a Silvio, alla mamma, alla moglie e così via (certe gesta riecheggiano per l’eternità). Accadde un putiferio senza precedenti — giustamente, direi — eppure in quella circostanza le responsabilità, pur essendoci, apparvero indirette. A leggere la cronaca del tempo, emerge che piovve molto, che i materiali usati per i restauri del dopoguerra erano forse inadeguati, ad esempio. Eppure, com’è giusto che sia, l’esecutivo venne crocifisso.
Oggi si risparmia il Governo, ma soprattutto Roberto Gualtieri, che avrebbe la responsabilità politica di quanto accaduto.
Quel crollo è politicamente assai rilevante perché fa cadere una maschera d’ipocrisia davvero insopportabile: oltre a mostrare il miserrimo livello della nostra classe politica — che non merita nemmeno l’eredità della storia, del nostro passato, che si ribella a noi venendo giù — punta il dito anche su qualcun altro. Sì, perché a morire è stato un operaio, rumeno, di 66 anni.
Ogni giorno, stando alle stime ufficiali (e molti morti non vengono nemmeno registrati), tre persone escono di casa per non tornarvi: muoiono sul lavoro. Nel 2024 abbiamo avuto quasi seicentomila infortuni sul lavoro: molti ti distruggono la vita, ti lasciano invalido per sempre (e non si contano quelli domestici, solo perché dedicarsi alla casa non è “formalmente lavoro”). Poi ci sono le malattie professionali: tantissime. Si consideri, ad esempio, che alcuni stimano circa diecimila casi di tumore professionale ogni singolo anno. Molti di essi sono mortali. E non ci sono solo i tumori, purtroppo.
E dunque, per esempio, in merito alla morte di Octay #Stroici, operaio rumeno di 66 anni: che hanno da dire coloro i quali dovrebbero tutelare il mondo del lavoro, dei precari, dei più fragili? Che dice il sindacato?
https://x.com/SavinoBalzano/status/1986356173591773612?t=9mKQhyQM9sEH82K7RZxm3w&s=19
CROLLA UNA STRUTTURA CHE AVEVA 1200 ANNI A #ROMA: QUANDO CHIEDIAMO LE DIMISSIONI A #GUALTIERI?
Devo confessarvi che questa ossessiva insistenza sulle dichiarazioni della #Zakharova comincia a puzzarmi. Sì, per carità, sono state infelici perché pronunciate mentre un operaio era sotto le macerie. Ma insomma, in quanto a uscite infelici, la nostra classe politica non è che abbia molto da insegnare. Sergio Mattarella ha paragonato i russi al Terzo Reich: non saprei cosa sia peggio.
Eppure alcuni telegiornali, il TG Draghi in prima fila, non riescono più a trovare aggettivi da riservare alle parole della portavoce del ministro degli esteri russo: immonde, barbare, invereconde, e chi più ne ha più ne metta. E la miseria! Quando il coro è così univoco e assordante, c’è da interrogarsi a fondo.
Uscita infelice, vero (a mio avviso, più per il tempismo che per il merito), però noi siamo quelli che davano della “culona inchiavabile” alla cancelliera tedesca. Non pubblicamente, noterà qualcuno, va bene, ma l’uscita fu oltremodo “colorita”.
E allora perché si insiste tanto? Domandatevi — col massimo dell’onestà intellettuale che riuscite a portare — che cosa sarebbe accaduto se al Campidoglio ci fosse stata Virginia Raggi. Secondo voi, che cosa sarebbe successo? Guardate i giornali di qualche anno fa: alla #Raggi veniva addossata qualsiasi responsabilità, anche la più assurda, e le notizie di Roma erano sempre in prima pagina, ogni sera, anche sul TG Draghi. A Virginia si riservava sempre l’apertura e gli attacchi erano ferocissimi, notoriamente anche volgari.
È curioso che crolli la Torre dei Conti, un edificio che stava lì, dritto dritto, da 1200 anni, e nessuno abbia nulla da dire a chi ha commissionato i lavori di “restauro”. Quasi sette milioni di euro del #PNRR (a debito) per demolire un edificio storico nel cuore di Roma. Vi sembra accettabile? La vicenda peraltro appare controversa: chi abitava attorno all’edificio era preoccupato da tempo.
Dico, ma ve lo ricordate cosa accadde nel 2010 col crollo della Palestra dei Gladiatori a Pompei? Al governo c’era #Berlusconi e alla Cultura Sandro Bondi, quello delle poesie a Silvio, alla mamma, alla moglie e così via (certe gesta riecheggiano per l’eternità). Accadde un putiferio senza precedenti — giustamente, direi — eppure in quella circostanza le responsabilità, pur essendoci, apparvero indirette. A leggere la cronaca del tempo, emerge che piovve molto, che i materiali usati per i restauri del dopoguerra erano forse inadeguati, ad esempio. Eppure, com’è giusto che sia, l’esecutivo venne crocifisso.
Oggi si risparmia il Governo, ma soprattutto Roberto Gualtieri, che avrebbe la responsabilità politica di quanto accaduto.
Quel crollo è politicamente assai rilevante perché fa cadere una maschera d’ipocrisia davvero insopportabile: oltre a mostrare il miserrimo livello della nostra classe politica — che non merita nemmeno l’eredità della storia, del nostro passato, che si ribella a noi venendo giù — punta il dito anche su qualcun altro. Sì, perché a morire è stato un operaio, rumeno, di 66 anni.
Ogni giorno, stando alle stime ufficiali (e molti morti non vengono nemmeno registrati), tre persone escono di casa per non tornarvi: muoiono sul lavoro. Nel 2024 abbiamo avuto quasi seicentomila infortuni sul lavoro: molti ti distruggono la vita, ti lasciano invalido per sempre (e non si contano quelli domestici, solo perché dedicarsi alla casa non è “formalmente lavoro”). Poi ci sono le malattie professionali: tantissime. Si consideri, ad esempio, che alcuni stimano circa diecimila casi di tumore professionale ogni singolo anno. Molti di essi sono mortali. E non ci sono solo i tumori, purtroppo.
E dunque, per esempio, in merito alla morte di Octay #Stroici, operaio rumeno di 66 anni: che hanno da dire coloro i quali dovrebbero tutelare il mondo del lavoro, dei precari, dei più fragili? Che dice il sindacato?