Что делать если нужно поставить какую-то 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
“Dall’economia dell’occupazione all’economia del genocidio”. Così si chiama l'ultimo report di Francesca Albanese, presentato pochi giorni fa al Consiglio per i diritti umani delle Nazioni Unite. All'interno di queste pagine si dicono alcune cose molto semplici, come ad esempio che esistono multinazionali che stanno permettendo allo Stato di Israele di sostenere la sua "guerra santa" e il suo genocidio contro il popolo palestinese.
Ecco qui un breve estratto chiaro e sintetico:
“Questo rapporto indaga sui meccanismi aziendali che sostengono il progetto coloniale israeliano di sfollamento e sostituzione dei palestinesi nei territori occupati. Mentre leader politici e governi si sottraggono ai propri obblighi, troppe entità aziendali hanno tratto profitto dall’economia israeliana basata sull’occupazione illegale, sull’apartheid e, ora, sul genocidio. La complicità denunciata da questo rapporto è solo la punta dell’iceberg; porre fine a tale situazione non sarà possibile senza chiamare a rispondere il settore privato, compresi i suoi dirigenti. Il diritto internazionale riconosce diversi gradi di responsabilità, ognuno dei quali richiede esame e rendicontazione, in particolare in questo caso, dove sono in gioco l’autodeterminazione e l’esistenza stessa di un popolo. Questo è un passo necessario per porre fine al genocidio e smantellare il sistema globale che lo ha permesso”.
Inutile ribadire la piena solidarietà a #francescaalbanese per gli attacchi e le intimidazioni che sta subendo, dentro e fuori le istituzioni. Ciò che conta oggi è proprio allearsi con questo tipo di denuncia radicale del Sistema globale della Guerra. Non si tratta di un'esagerazione o di uno scontro fazioso fra ideali politici; al contrario, si tratta di una questione di vita o di morte, fondata su studi e dati molto solidi e precisi che mettono in luce gli orrori compiuti dai cosiddetti "buoni", dai "democratici", da coloro che si credono superiori agli altri.
Oltre all'analisi del tornaconto economico che, come sappiamo, ogni tipo di guerra produce da sempre, c'è anche da porre l'accento sulla questione antropologico-spirituale. Perché è verissimo che “Il genocidio in corso è un’impresa redditizia”, come ribadisce la relatrice speciale dell'Onu, ma è anche vero che esiste un livello pre-bellico, più profondo, cioè spirituale, che anima e organizza il mondo della guerra e dello sterminio. Di questo aspetto più religioso-culturale ho accennato in questo video. Sperando possiate vederlo con calma e pazienza. Buona visione!
Davide Sabatino
https://youtu.be/NACRQlLjui0?si=fcsPOayR0zVBHk2R
Cosa significa vivere in una Democrazia oggi? Purtroppo la risposta a questa domanda, da tempo, non è più scontata…
Il re è nudo!
Denunciamo e annunciamo un mondo nuovo, una democrazia autentica!
Davide Sabatino
#FrancescaAlbanese✌🏻
“Dall’economia dell’occupazione all’economia del genocidio”. Così si chiama l'ultimo report di Francesca Albanese, presentato pochi giorni fa al Consiglio per i diritti umani delle Nazioni Unite. All'interno di queste pagine si dicono alcune cose molto semplici, come ad esempio che esistono multinazionali che stanno permettendo allo Stato di Israele di sostenere la sua "guerra santa" e il suo genocidio contro il popolo palestinese.
Ecco qui un breve estratto chiaro e sintetico:
“Questo rapporto indaga sui meccanismi aziendali che sostengono il progetto coloniale israeliano di sfollamento e sostituzione dei palestinesi nei territori occupati. Mentre leader politici e governi si sottraggono ai propri obblighi, troppe entità aziendali hanno tratto profitto dall’economia israeliana basata sull’occupazione illegale, sull’apartheid e, ora, sul genocidio. La complicità denunciata da questo rapporto è solo la punta dell’iceberg; porre fine a tale situazione non sarà possibile senza chiamare a rispondere il settore privato, compresi i suoi dirigenti. Il diritto internazionale riconosce diversi gradi di responsabilità, ognuno dei quali richiede esame e rendicontazione, in particolare in questo caso, dove sono in gioco l’autodeterminazione e l’esistenza stessa di un popolo. Questo è un passo necessario per porre fine al genocidio e smantellare il sistema globale che lo ha permesso”.
Inutile ribadire la piena solidarietà a #francescaalbanese per gli attacchi e le intimidazioni che sta subendo, dentro e fuori le istituzioni. Ciò che conta oggi è proprio allearsi con questo tipo di denuncia radicale del Sistema globale della Guerra. Non si tratta di un'esagerazione o di uno scontro fazioso fra ideali politici; al contrario, si tratta di una questione di vita o di morte, fondata su studi e dati molto solidi e precisi che mettono in luce gli orrori compiuti dai cosiddetti "buoni", dai "democratici", da coloro che si credono superiori agli altri.
Oltre all'analisi del tornaconto economico che, come sappiamo, ogni tipo di guerra produce da sempre, c'è anche da porre l'accento sulla questione antropologico-spirituale. Perché è verissimo che “Il genocidio in corso è un’impresa redditizia”, come ribadisce la relatrice speciale dell'Onu, ma è anche vero che esiste un livello pre-bellico, più profondo, cioè spirituale, che anima e organizza il mondo della guerra e dello sterminio. Di questo aspetto più religioso-culturale ho accennato in questo video. Sperando possiate vederlo con calma e pazienza. Buona visione!
Davide Sabatino
https://youtu.be/NACRQlLjui0?si=fcsPOayR0zVBHk2R
Cosa significa vivere in una Democrazia oggi? Purtroppo la risposta a questa domanda, da tempo, non è più scontata…
Il re è nudo!
Denunciamo e annunciamo un mondo nuovo, una democrazia autentica!
Davide Sabatino
#FrancescaAlbanese✌🏻
Our 'Madleen' was on a mission of urgency after a year of set backs, carrying baby formula, food, medicine, and basic humanity. Then came unidentified vessels, speedboats, quadcopters, and finally, Israeli soldiers. Francesca Albanese recounts what happened in real-time as she spoke to the crew live. She reminds us that 'Madleen' was a UK-flagged boat seized in international waters. Israel's interception is an act of piracy. Abduction is illegal, as is their siege, genocide, occupation and countless other war crimes across Palestine. So what makes a small, aid boat so scary for the Israeli occupation? According to Francesca Albanese: it is our humanity. It is everyone's defiance. It is our collective power to break the siege.
#BreakIsraelsSiege#EndTheBlockade#StandWithGaza#FrancescaAlbanese#Madleen
L’articolo di oggi sul Fatto Quotidiano, con le dichiarazioni della Relatrice speciale ONU Francesca Albanese, dipinge un quadro agghiacciante della situazione in Palestina e dell’ipocrisia della cosiddetta “pace” imposta dall’esterno.
Il “Board di Trump” non è uno strumento per la pace, ma un’operazione per silenziare le proteste globali e sostituire il sistema multilaterale ONU, già volutamente indebolito. Mentre si parla di trattative, la colonizzazione della Cisgiordania accelera, gli aiuti umanitari a Gaza sono ostacolati e la violenza continua.
Albanese denuncia chiaramente:
✅ Oltre 500 palestinesi uccisi a Gaza in meno di 4 mesi, oltre ai morti per fame, freddo e malattie.
✅ Un sistema di tortura che mira ad annientare l’identità palestinese, dentro e fuori le prigioni.
✅ La Fase 2 del “piano”: confinare i sopravvissuti in “zone di concentramento”, come riserve per nativi.
✅ L’inarrestabile flusso di armi verso Israele, anche dall’Italia (con gli Apache di Leonardo) e dalla Germania.
✅ La crisi finanziaria dell’ONU, voluta per indebolire ulteriormente il già fragile sistema di protezione dei diritti umani.
E l’Italia? Raggiunge il punto più basso della sua diplomazia, intensifica gli scambi commerciali e militari con Israele e prepara decreti “bavaglio” per criminalizzare chi scende in piazza per la Palestina.
La mobilitazione globale non si fermerà. Arriverà un’altra Flottiglia, più grande. Perché la lotta per la Palestina è diventata il simbolo di una battaglia più ampia: per i diritti umani, contro l’imperialismo e per la difesa delle nostre stesse costituzioni democratiche, sempre più sotto attacco.
#Palestina#Gaza#StopArmiAdIsraele#ONU#DirittiUmani#FrancescaAlbanese#NoAlBoardDiTrump
https://www.marx21.it/internazionale/il-board-di-trump-non-porta-la-pace-ma-semina-bombe/