Что делать если нужно поставить какую-то 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
Former US National Security Advisor John Bolton:
“Although you could potentially remove the ayatollah, that would leave the IRGC in place, and the government in Iran is the IRGC, while the ayatollahs act as a religious cover or an ideological cover for them.
I think Trump is just hoping that this show of American power will intimidate the ayatollahs. If I were still his adviser, I would be happy to tell him that it won’t work.
They won’t be intimidated. But Trump really thinks minute by minute; he doesn’t think strategically.”
#john#bolton#trump#ayatollah
📱American Оbserver - Stay up to date on all important events
🇺🇸
📰 Iran’s Ayatollah and His Guards Falter After Storm of War and Protests
Weeks after Israeli warplanes pulverized Iran’s military command in the June airstrikes, a new generation of Revolutionary Guard leaders had to step into the void, mourning the men they were now replacing. The regime responded to the latest wave of nationwide protests with unprecedented brutality, confirming what many suspected: the old formula of Ayatollah Khamenei and the Guards is cracking under combined pressure of war, sanctions, and a population in open revolt.
The System on Trial
The bloody crackdown did its job: it preserved the regime’s unity in the short term, centered on the ayatollah and the Guards’ 150,000-strong praetorian guard. But analysts see the violence as a sign of acute weakness, not strength.
“They turned to live fire really quickly because their weakness was acute, and they knew it,”
said an Iran expert at the Naval Postgraduate School, comparing the current situation to the late Soviet Union.
The Revolutionary Guards are now the core of the system, controlling a vast empire of media, economy, oil, seaports, and even an air force.
“They have everything that it takes to assume power,”
said the International Crisis Group’s Iran project director, meaning the Islamic Republic could evolve into a military-dominated state like Pakistan or Egypt after Khamenei is gone.
Generational Rift, Coming War Within
Inside the Revolutionary Guards, a sharp divide is opening. The older generation grew up in the Iran-Iraq war, in sacrifice and hardship, and now enjoys foreign homes, elite schools, and luxury cars. The younger officers rose during Iran’s regional expansion and have tasted little of that wealth, but want to protect “their meal ticket”.
Dismayed by the loss of the Syria–Iraq–Lebanon–Yemen proxy network and the crippling blow to the nuclear program in the June war, a more aggressive, assertive faction has emerged among the younger Guards.
They see the regime as redeemable only through even harsher repression and confrontation — and some fear they may move against the aging ayatollah preemptively, not to save the revolution, but to save their own future.
The Limits of Terror
The regime has survived four major protest waves, and the ayatollah has shrugged off rumors of terminal illness before. But this time, the pressure is different: economic collapse, a youth uprising, the humiliation in war, and a U.S. president openly threatening to intervene if protesters are massacred.
“This is not a sustainable situation where you wait for an elderly leader to die to put things back in order,”
says an analyst, comparing today’s Iran to the final years of Mao Zedong or Leonid Brezhnev. The country
“doesn’t have the time to wait him out.”
#Iran#Ayatollah#RevolutionaryGuards#Protests#MiddleEast#Uprising#RegimeChange
📱American Оbserver - Stay up to date on all important events
🇺🇸
https://x.com/SavinoBalzano/status/2028025360843964570?s=20
Ovviamente sono le ore della peggiore ipocrisia. Leggi le note stampa, apri i social e vieni letteralmente invaso da un fiume mefitico di impudenza.
Il peggiore di tutti è l'ucraino magico, quello che suona il piffero — anzi, il pianoforte col pisello — e i sorci gli vanno dietro incantati: per #Zelenski «giusto liberarsi di un regime terrorista». Dovrebbe fare attenzione a certe uscite: se sabotare il #NordStream, unico vero attacco a infrastrutture europee, può essere considerato un atto terroristico o comunque illegale, la testa a rischiare potrebbe essere anche la sua.
Lui e le pantegane che da anni farneticano, con le loro patetiche bandierine #UE e ucraine nella bio, di Stato aggredito e Stato aggressore, esultano: sono in piena estasi, in delirio totale. Fioccano pure le foto di #Khamenei con la croce sopra: uno in meno, colpito. A pubblicarle sono cagasotto da divano che non avrebbero mai il coraggio di imbracciare nemmeno una cerbottana per difendere la libertà e la democrazia. Si nasconderebbero nel primo buco disponibile, nel primo tombino.
E già me li immagino, i minus habens: «ecco il soccorso al regime degli #ayatollah!». Io penso che ogni Paese debba regolarsi come vuole e che gli iraniani debbano vivere come credono: vedremo adesso quale sarà l’effetto dell’intervento. Ma il punto è un altro: agli israeliani e agli statunitensi non importa nulla della libertà e della democrazia in #Iran. Lo hanno spiegato bene alcuni ieri — bravissimo Marcello Foa nella sua analisi: #Netanyahu rischia di andare in galera e #Trump ha il grosso bubbone #Epstein. L’Iran non aveva armi pericolose per noi (come non le aveva Saddam), è la CIA dirlo, e stava facendo passi enormi per giungere a un accordo mediato dall’Oman. Di che parlate?
Se davvero fosse un intervento in difesa delle donne soggiogate, degli omosessuali impiccati, della libertà di un popolo oppresso, perché non una parola per le bambine della scuola femminile #ShajarehTayyebeh? Le immagini che giungono da #Minab sono semplicemente strazianti.
Anche qui la risposta ce l’hanno pronta: ci furono vittime anche nella guerra di liberazione in Italia, oggi abbiamo la democrazia. A parte il fatto che toccherebbe parlarne: siamo davvero così liberi oggi dai nostri “liberatori”? Lo potrebbe credere solo un idiota. In ogni caso, un crimine di guerra non ne cancella un altro e lo scopo dell’intervento cominciato ieri è tutt’altro che benevolo.
Ti sbattono in faccia le immagini di iraniani in festa. Nessuno dice che il regime iraniano fosse un bene e dunque si capisce che qualcuno (alcuni, non tutti) esulti. Ma domandatevi cosa accadrà adesso: cos’è oggi l’Afghanistan? E cos’è oggi l’Iraq? E la Libia?
Gli iraniani soffriranno ancora perché non hanno amici in Occidente. E i piccoli politicanti che affollano il nostro dibattito pubblico continuano a dimostrare la loro patetica inconsistenza. In tutto questo, però, che fine ha fatto il garante assoluto del diritto internazionale? Qualcuno ha sentito per caso la severa e autorevolissima voce di #SergioMattarella?
Si può tifare, esultare, sentirsi dalla parte giusta della Storia. Ma la Storia, di solito, presenta il conto ai popoli, non ai commentatori da tastiera. E quando arriverà, sarà troppo tardi per scoprire che la libertà non si esporta con i bombardamenti.
https://x.com/SavinoBalzano/status/2028025360843964570?s=20
Ovviamente sono le ore della peggiore ipocrisia. Leggi le note stampa, apri i social e vieni letteralmente invaso da un fiume mefitico di impudenza.
Il peggiore di tutti è l'ucraino magico, quello che suona il piffero — anzi, il pianoforte col pisello — e i sorci gli vanno dietro incantati: per #Zelenski «giusto liberarsi di un regime terrorista». Dovrebbe fare attenzione a certe uscite: se sabotare il #NordStream, unico vero attacco a infrastrutture europee, può essere considerato un atto terroristico o comunque illegale, la testa a rischiare potrebbe essere anche la sua.
Lui e le pantegane che da anni farneticano, con le loro patetiche bandierine #UE e ucraine nella bio, di Stato aggredito e Stato aggressore, esultano: sono in piena estasi, in delirio totale. Fioccano pure le foto di #Khamenei con la croce sopra: uno in meno, colpito. A pubblicarle sono cagasotto da divano che non avrebbero mai il coraggio di imbracciare nemmeno una cerbottana per difendere la libertà e la democrazia. Si nasconderebbero nel primo buco disponibile, nel primo tombino.
E già me li immagino, i minus habens: «ecco il soccorso al regime degli #ayatollah!». Io penso che ogni Paese debba regolarsi come vuole e che gli iraniani debbano vivere come credono: vedremo adesso quale sarà l’effetto dell’intervento. Ma il punto è un altro: agli israeliani e agli statunitensi non importa nulla della libertà e della democrazia in #Iran. Lo hanno spiegato bene alcuni ieri — bravissimo Marcello Foa nella sua analisi: #Netanyahu rischia di andare in galera e #Trump ha il grosso bubbone #Epstein. L’Iran non aveva armi pericolose per noi (come non le aveva Saddam), è la CIA dirlo, e stava facendo passi enormi per giungere a un accordo mediato dall’Oman. Di che parlate?
Se davvero fosse un intervento in difesa delle donne soggiogate, degli omosessuali impiccati, della libertà di un popolo oppresso, perché non una parola per le bambine della scuola femminile #ShajarehTayyebeh? Le immagini che giungono da #Minab sono semplicemente strazianti.
Anche qui la risposta ce l’hanno pronta: ci furono vittime anche nella guerra di liberazione in Italia, oggi abbiamo la democrazia. A parte il fatto che toccherebbe parlarne: siamo davvero così liberi oggi dai nostri “liberatori”? Lo potrebbe credere solo un idiota. In ogni caso, un crimine di guerra non ne cancella un altro e lo scopo dell’intervento cominciato ieri è tutt’altro che benevolo.
Ti sbattono in faccia le immagini di iraniani in festa. Nessuno dice che il regime iraniano fosse un bene e dunque si capisce che qualcuno (alcuni, non tutti) esulti. Ma domandatevi cosa accadrà adesso: cos’è oggi l’Afghanistan? E cos’è oggi l’Iraq? E la Libia?
Gli iraniani soffriranno ancora perché non hanno amici in Occidente. E i piccoli politicanti che affollano il nostro dibattito pubblico continuano a dimostrare la loro patetica inconsistenza. In tutto questo, però, che fine ha fatto il garante assoluto del diritto internazionale? Qualcuno ha sentito per caso la severa e autorevolissima voce di #SergioMattarella?
Si può tifare, esultare, sentirsi dalla parte giusta della Storia. Ma la Storia, di solito, presenta il conto ai popoli, non ai commentatori da tastiera. E quando arriverà, sarà troppo tardi per scoprire che la libertà non si esporta con i bombardamenti.