Что делать если нужно поставить какую-то 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
🇪🇸 #Spagna – Il governo ha approvato un decreto per regolarizzare circa 500.000 migranti (la maggior parte latinoamericani) che risiedono nel Paese da almeno cinque mesi e che hanno presentato domanda di protezione internazionale. La misura riguarderà anche…
🇪🇸#Spagna – Il governo ha approvato un decreto per regolarizzare circa 500.000 migranti (la maggior parte latinoamericani) che risiedono nel Paese da almeno cinque mesi e che hanno presentato domanda di protezione internazionale. La misura riguarderà anche i loro figli. I richiedenti dovranno dimostrare di non avere precedenti penali.
@UltimoraPolitics24
🇪🇸#Spagna – Il governo annuncia che da gennaio 2026 sarà possibile pagare un abbonamento unico per autobus a lunga percorrenza, treni pendolari e treni a media percorrenza: costerà 60 euro al mese, o 30 euro per gli under-26. Sarà valido su tutto il territorio nazionale.
@UltimoraPolitics24
🇪🇸#Spagna — Urne chiuse per le elezioni generali. Divulgati gli intentional poll (sondaggi condotti durante il divieto di diffusione ma prima del voto di oggi): 150 seggi ai popolari. La maggioranza posta al Congresso è di 176. Exit poll e primi dati ufficiali dalle 21
@UltimoraPolitics
#Spagna: La Casa Bianca annuncia che la Spagna ha accettato di collaborare militarmente con gli Stati Uniti.
Nei giorni scorsi il Governo spagnolo ha negato l’uso delle basi agli aerei statunitensi.
#Spagna
Un approfondimento sulla nuova “Ley de deporte” spagnola, con una particolare attenzione all’intreccio tra lo sport e tematiche sociali come la disparità di genere e la disabilità
https://telegra.ph/La-nuova-Ley-de-deporte-spagnola-12-24-3
👉@giurisprudentia
🇪🇸 Elezioni in #Spagna, dati del Ministero dell'Interno (100% scrutinato)
Partido Popular 136 seggi
PSOE 122
Vox 33
Sumar 31
Esquerra Republicana de Catalunya 7
Junts x Catalunya 7
Euskal Herria Bildu 6
Partido Nacionalista Vasco 5
Bloque Nacionalista Gallego 1
Coalición Canaria 1
Union del Pueblo Navarro 1
PP+Vox 169
PSOE+Sumar 153
Maggioranza assoluta: 176 su 350
Per la diretta delle elezioni spagnole seguiteci su Twitter: https://twitter.com/you_trend
🔴🇪🇸 Elezioni in #Spagna - intention poll Sigmados per RTVE, stima seggi:
PP 145-150
PSOE 113-118
Sumar 28-31
Vox 24-27
Soglia della maggioranza assoluta: 176 su 350
Secondo questi dati, al momento non è chiaro se PP e Vox avranno i numeri sufficienti per raggiungere la maggioranza assoluta dei seggi, poiché la loro forchetta oscilla tra 169 e 177 seggi
Diffuso dalla Sala Stampa vaticana il logo del Viaggio Apostolico che Papa #LeoneXIV compirà in #Spagna dal 6 al 12 giugno. L'immagine è strutturata come un cerchio aperto in movimento, formato da figure umane unite tra loro e orientate verso l’alto.
Questa composizione esprime comunità, incontro e sostegno reciproco: non si tratta solo di stare insieme, ma di camminare uniti verso una meta comune. La Vergine Maria, posta al centro, rappresenta il cuore del movimento: presenza materna che accoglie e orienta gli sguardi verso Dio, segno di unità e di speranza per tutto il popolo.
Il motto scelto, “Alzad la mirada” (Gv 4,35), è un invito a sollevare lo sguardo oltre le preoccupazioni quotidiane per riscoprire la presenza di Dio e aprirsi agli altri. È un invito alla speranza e alla contemplazione, che esorta a non chiudersi in sé stessi ma a ritrovare l’unità, la bellezza e la carità come segni concreti di una vita condivisa.
In questo gesto di “alzare lo sguardo” si esprime anche l’atteggiamento con cui la Chiesa in Spagna accoglie la visita del Santo Padre: con il cuore aperto e pronto a camminare insieme.
Questa mattina, Papa #LeoneXIV ha ricevuto in udienza, nel Palazzo Apostolico Vaticano, Re Felipe VI e la Regina Letizia di #Spagna. I Reali si sono successivamente incontrati col Cardinale Pietro Parolin, Segretario di Stato di Sua Santità, accompagnato da mons. Paul Richard Gallagher, Segretario per i Rapporti con gli Stati e le Organizzazioni Internazionali.
"Nel corso dei cordiali colloqui in Segreteria di Stato - si apprende dalla Sala Stampa vaticana - si è espresso compiacimento per le buone relazioni tra la Santa Sede e la Spagna, che avranno un momento significativo nel prossimo Viaggio Apostolico del Santo Padre. In tale contesto, si è fatto riferimento ad alcune questioni di attualità che riguardano la situazione del Paese e la missione della Chiesa nella società. Infine, ci si è soffermati su alcuni temi di carattere regionale ed internazionale, rilevando l’importanza di un impegno costante a sostegno della pace e del rafforzamento dei principi e dei valori che stanno alla base della convivenza internazionale".
Lasciato il Vaticano, i Reali di Spagna hanno raggiunto la basilica papale di Santa Maria Maggiore per la presa di possesso, da parte del Re, della carica di Protocanonico del Capitolo Liberiano.