Что делать если нужно поставить какую-то 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
Among those unjustly detained (more like kidnapped) by the Israeli forces from the Sumud Flotilla to break the siege on Gaza is a Lebanese citizen from Tripoli, Lina Al-Tabbal. Has this reached PM Nawaf Salam and will he act?
Lina gave the Lebanese flag its truest meaning: raised not just as a symbol, but as a stand for liberation, freedom, and resistance to oppression.
Freedom for our friend Lyna Al-Tabbal Peron and for all her courageous companions.
#GlobalSumudFlotilla
Siamo all'ora X: Israele potrebbe assaltare la Global Sumud Flotilla.
Stasera 21.30 - 21.35 saremo in LIVE su La Grande Imboscata con Clara Statello per seguire in diretta gli aggiornamenti dalla #GlobalSumudFlotilla con collegamenti in LIVE, proveremo a sentire anche le persone in viaggio (linea permettendo).
Oggi è stata superata la distanza X, il governo israeliano dice di sentirsi autorizzato ad intervenire.
VI ASPETTIAMO NUMEROSI PER SEGUIRE QUESTA LUNGA SERATA
QUI LINK: https://youtube.com/live/UlepRY4RPCU
"Stiamo salpando per Gaza. Ecco perché." Melanie Schweizer della #GlobalSumudFlotilla descrive in dettaglio gli obiettivi – e i timori – del più grande convoglio umanitario diretto verso Gaza da quando è cominciato l’assedio (in partenza domani).
👉https://progressive.international/wire/2025-08-26-we-are-sailing-to-gaza-heres-why-/en
——————————
➡️ Iscriviti a Intelligence for the People
Sono anche su Twitter: @riannuzziGPC
La #GlobalSumudFlotilla è la più grande flottiglia civile contro l’assedio illegale di #Gaza. Non la prima: ricordiamo la #MaviMarmara e il modo in cui #Ankara, per interessi economici e politici, ha poi normalizzato i rapporti con #Israele.
https://www.youtube.com/watch?v=fHZEzgWgrB8
300 000 en Roma
100 000 en Milán, 150 000 en Bolonia, 80 000 en Nápoles, 20 000 en Brescia, Catania Palermo, 50 000 en Génova, 20 000 en Livorno... puertos, autopistas, circunvalaciones y estaciones bloqueadas
UN MILLÓN Y MEDIO EN TODA ITALIA
#globalsumudflotilla#USB
#PalestinaLibera#Gaza
Sigue y difunde el canal:
https://t.me/laltrafacciadellimpero
300mila a Roma
100 mila a Milano, 150mila a Bologna, 80mila a Napoli, 20mila a Brescia, Catania Palermo, 50mila a Genova 20mila a Livorno... bloccati porti, autostrade, tangenziali, stazioni
UN MILIONE E MEZZO IN TUTTA ITALIA
#globalsumudflotilla#USB
#PalestinaLibera#Gaza
Segui e diffondi il canale:
https://t.me/laltrafacciadellimpero
La #GlobalSumudFlotilla è la più grande flottiglia civile contro l’assedio illegale di #Gaza. Non la prima: ricordiamo la #MaviMarmara e il modo in cui #Ankara, per interessi economici e politici, ha poi normalizzato i rapporti con #Israele
https://medium.com/p/flottiglie-per-gaza-resistenza-civile-e-giochi-politici-tra-turchia-e-israele-10a9c4f23420?source=social.tw#Turchia
Drones are now regularly flying over the flotilla.
As Yasemin Acar, Steering Committee member of the Global Sumud Flotilla, explains: this surveillance is meant to intimidate and exhaust us. But it only underscores why our mission is urgent.
For Palestinians, drones are not just cameras. They are weapons of war, used daily to surveil, intimidate, and kill. The same technology that terrorizes Gaza is now policing the Mediterranean, turning the sea into a graveyard.
We will not turn back. We continue to Gaza because this is about justice, freedom, and life.
#BreakTheSiege
#FreePalestine
#SailToGaza
#GlobalMovementToGaza
#GlobalSumudFlotilla
https://x.com/SavinoBalzano/status/1971129589729562929?t=lFhJPoIZlMv1Vvnt_O9B3Q&s=19
Guardate questi 60 secondi di video e ditemi se in questo Paese non c’è un problema democratico grande come un grattacielo.
Ci si indigna per il mancato sostegno del governo alla #GlobalSumudFlotilla, ma appena fai notare che anche #Mattarella resta in silenzio, subito scattano l’imbarazzo, i balbettii, la prudenza.
Insomma: attaccare #Meloni o #Salvini va bene (lasciamo perdere #Tajani che ormai non lo possono vedere manco i 300 dipendenti della Farnesina), ma guai a toccare il Presidente della Repubblica.
Eppure, tra le imbarcazioni colpite sembra ce ne fossero anche alcune battenti bandiera italiana, il nostro tricolore.
Il Capo dello Stato rappresenta l’unità nazionale, lo dice l’articolo 87 della Costituzione. E allora? Pensa come siamo ridotti.
In diretta dalla #Flotilla, l’onorevole #Scotto ci spiega che #SergioMattarella non è tenuto a intervenire. Avrà pensato lo stesso quando ha paragonato la #Russia al Terzo Reich?
Se c’è un potere che non si può criticare, la democrazia non esiste: fatevene una ragione. E se certi silenzi li condannate e altri li giustificate, la vostra battaglia perde autorevolezza e credibilità.
100 punti in meno al GrifonSergio.
#BattitoriLiberi: dal lunedì al venerdì alle 17, con Gianluca Fabi, su Radio Cusano.
As we enter the high-risk zone, follow our mission by tracking the flotilla live on our website.
#BreakTheSiege#FreePalestine#SailToGaza
#AllEyesOnGaza
#GlobalMovementToGaza#GlobalSumudFlotilla
tutti i filoIsraeliani che si sentono molto furbi nell' affermare che ci sono tante atrocità nel mondo e fanno l'elenco delle guerre in Yemen Sudan Congo etcetc per distogliere l ' attenzione dalla Palestina, rispondo
1) bene cominciamo a insorgere per il diritto contro la forza in Palestina e facciamolo contro la barbarie dovunque essa si produca. Che ci siano altri crimini in altre regioni del mondo non esclude la mobilitazione contro il genocidio
2) negli altri conflitti gli attori sono molteplici e le responsabilità dell' Occidente non cosí dirette e evidenti
Nel genocidio di #Palestina il ruolo di USA e UE è essenziale
I nostri governi hanno le mani sporche di sangue
3) l egocentrismo della destra che pensa queste manifestazioni siano contro di loro mentre sono manifestazioni europee ha tuttavia una base di verità; il centro sinistra al Governo nei confronti di USA e Israele non farebbe nulla di diverso dalla destra
4) oggi tuttavia le associazioni i movimenti i giovani i singoli scendono in piazza contro la barbarie e lo farebbero sono convinta anche contro #Renzi#Calenda o la #Shlein
#GlobalSumudFlotilla#GazaGenocide
Ultimo articolo su #fattoquotidiano sulle dinamiche internazionali