Что делать если нужно поставить какую-то 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
La giunta regionale dell’#EmiliaRomagna con presidente #Bonaccini e vicepresidente #Schlein ha restituito fra il 2021 e il 2022 al ministero delle Infrastrutture 55,2 milioni di euro di un finanziamento di 71,9 milioni di euro ricevuto dallo Stato per la manutenzione…
La giunta regionale dell’#EmiliaRomagna con presidente #Bonaccini e vicepresidente #Schlein ha restituito fra il 2021 e il 2022 al ministero delle Infrastrutture 55,2 milioni di euro di un finanziamento di 71,9 milioni di euro ricevuto dallo Stato per la manutenzione e la messa in sicurezza dei corsi di acqua della Regione. (Open)
@UltimoraPolitics
#Italia#EmiliaRomagna#Parma
Fallite le trattative col centrosinistra e con Pizzarotti: a Parma il #M5S|NI non parteciperà alle amministrative.
@UltimoraPolitics
#Italia#EmiliaRomagna#Bologna
In una conferenza stampa a Bologna, #PaP|Sinistra radicale ha denunciato la aggressione e il tentato stupro di una militante di PaP da parte di un gruppo di persone ucraine neofasciste, con chiara simbologia banderista.
@UltimoraPolitics
#Italia#EmiliaRomagna#ReggioEmilia
Le delegazioni di #IV|RE e #PiùE|RE sono state aggredite a Reggio Emilia durante le celebrazioni del 25 aprile.
@UltimoraPolitics
#Italia#Regionali#EmiliaRomagna
Il 17 e il 18 novembre si voterà per l'elezione del Presidente della Regione Emilia-Romagna e il contestuale rinnovo dei 50 consiglieri regionali (contemporaneamente con l'Umbria) eletti all'interno dei 9 collegi regionali corrispondenti alle 9 province.
Si voterà dalle 7 alle 23 di domenica 17 e dalle 7 alle 15 di lunedì 18.
Il Presidente è eletto in un unico turno: basta la maggioranza relativa dei voti per poter essere eletti e gli sarà assicurata una maggioranza di almeno 27 seggi. Lo sbarramento è fissato al 3% per le liste coalizzate e al 5% per le liste non coalizzate.
La Regione è sempre stata la roccaforte prima della sinistra e oggi del centrosinistra e secondo i sondaggi dovrebbero vedere confermata l'amministrazione uscente.
La Presidente in carica è Irene #Priolo (#PD|S&D), facente le veci del Presidente eletto Stefano #Bonaccini (PD) a gennaio 2020 con il 51% dei voti che si è dimesso per entrare in carica come europarlamentare.
@OsservatorioItaliano
#Italia#Regionali#EmiliaRomagna
Il Sindaco di #Ravenna Michele #DePascale (#PD|S&D) è il nuovo Presidente della Regione Emilia-Romagna.
Succede all'europarlamentare e Presidente del Partito Democratico Stefano #Bonaccini.
@OsservatorioItaliano
Autonomia, via libera alla richiesta del referendum. #Campania, #Toscana, #Sardegna, #Puglia ed #EmiliaRomagna hanno approvato in consiglio regionale gli stessi provvedimenti: il quesito che intende abolire interamente la norma e l'altro per la modifica parziale. I delegati delle regioni presenteranno i quesiti alla Corte Costituzionale. (Ansa)
@UltimoraPolitics
Le regioni #EmiliaRomagna e #Puglia interrompono tutti i rapporti con #Israele. Il presidente della Puglia #Emiliano: "Genocidio di inermi palestinesi in atto da parte del governo #Netanyahu"
@UltimoraPolitics
Il PNRR non può essere utilizzato per aiutare l'Emilia Romagna.
Cerchiamo di quantificare il disastro.
Danni per almeno 5/6 miliardi di euro: circa 15 milioni di piante da estirpare (per realizzare un ettaro di frutteto ci possono volere 50 mila euro); mille aziende in crisi e quattrocento allevamenti alluvionati; cinquantamila posti di lavoro a rischio.
Ci vorranno cinque anni per raccogliere qualche frutto da un albero nelle zone colpite.
Saranno 400 milioni i kg in meno di grano nel mercato nazionale e mancherà il 20% della frutta. L'effetto: saliranno i prezzi di questi beni essenziali e a pagare saranno i più deboli.
Il PNRR però si potrà utilizzare per investire in armi, anche grazie al voto favorevole di quasi tutti i nostri partiti politici.
Giudicate voi.
La mia al TG Plus di Cusano Italia TV
#alluvioneemiliaromagna#alluvione#emiliaromagna#politica#italia#televisione#informazione#giornalismo#PNRR#UnioneEuropea
https://x.com/SavinoBalzano/status/1836837611845074949?t=zUTmU8s5R3-XF9mHDYQtMw&s=19
La drammatica #Alluvione viene ovviamente imputata agli epocali cambiamenti climatici del nostro tempo. Credo sia una bella paraculata, utile a nascondere l'assoluta incapacità di certi amministratori, a partire da #Bonaccini, che non hanno fatto assolutamente nulla per prevenire questo disastro. Anzi.
Attendo che compaiano in tv con la solita felpina della protezione civile a fare gli eroi.
La verità è che episodi come questi, nella loro tragicità, vengono strumentalizzati per spingere a tavoletta la folle ideologia #green, da scaricare ovviamente sulle spalle dei poracci: credo che sul punto l'ex Presidente dell'#EmiliaRomagna saprà fornire il suo dotto contributo dalle democraticissime istituzioni dell'#UE.
La mia a #5Notizie, #RadioCusanoCampus.
#alluvioneromagna#alluvioneemiliaromagna
https://x.com/SavinoBalzano/status/1858796809008660926?t=zoW1JPySaEFK3hgRxcxNgg&s=19
Solo due numeri sulle elezioni regionali perché quello che leggo ha del surreale: va bene tutto, ma il metro deve essere lo stesso.
In #Umbria i votanti passano da 455.000 a 366.000 e, dunque, l'affluenza cala dal 65% al 52%. Nel 2019 a #Tesei servirono 255.000 voti per vincere. Ieri a #Proietti ne sono bastati 182.000. Lo sconfitto del 2019 (Bianconi) di voti ne prese 166.000. Questo per dire che non c'è stato alcun plebiscito e la spazzatura che si legge in giro (tipo «non ci hanno visto arrivare») è semplicemente comica. Gli umbri hanno punito l'amministrazione uscente che evidentemente non ha convinto, ma il loro disappunto lo hanno espresso restando a casa. Questi sono i numeri, nessun «avanti popolo, alla riscossa!».
In #EmiliaRomagna, i votanti passano da 2.400.000 a 1.600.000: un vero e proprio bagno di sangue. L'affluenza passa dal 68% al 46%: un salasso allucinante. Qui il vincitore #DePascale ha preso 922.000 voti: non solo sono meno di quanti ne prese #Bonaccini, ma sono persino meno di quanti ne prese Borgonzoni (1.014.000) che nel 2020 fu sconfitta. Che vuol dire? Semplicissimo: l'amministrazione uscente è stata massacrata dall'#astensionismo, letteralmente fustigata. Anche qui, dunque, rispetto assoluto per il risultato e augurio di buon lavoro al Presidente, ma nessuna «bandiera rossa trionferà!». Cerchiamo di essere seri, un minimo.
L'astensione per me è da sciocchi (anche perché rattrista, ma conta 0 da tutti i punti di vista), ma abbiamo due sole possibililità (sempre se vogliamo essere seri): o vale niente, sempre, o la si considera, sempre.