Что делать если нужно поставить какую-то 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
🇺🇸Les États-Unis ont rétabli la peine capitale par peloton d'exécution et par injection létale
Le ministère américain de la Justice a annoncé la levée du moratoire sur les exécutions fédérales, instauré sous Joe #Biden, et a promis d'étendre leur application.
RT en français • Osez questionner !
Joe #Biden: “È stato il più grande onore della mia vita servire come vostro Presidente. E mentre è stata mia intenzione ricandidarmi, credo che sia nel migliore interesse del mio partito e del paese per di lasciarela corsae concentrarmi esclusivamente sull'adempimento dei miei doveri di presidente per il resto del mio mandato.
Di questo parlerò alla Nazione più in dettaglio alla fine di questa settimana.
Per ora, permettetemi di esprimere la mia più profonda gratitudine a tutti coloro che hanno lavorato così duramente per vedermi rieletto. Voglio ringraziare la vicepresidente Kamala Harris per essere stata una partner straordinaria in tutto questo lavoro. E permettetemi di esprimere il mio sentito apprezzamento al popolo americano per la fede e la fiducia che ha riposto in me.”
@UltimoraPolitics
🇺🇸 Stati Uniti - l'Fbi sta perquisendo la casa al mare di Joe #Biden a Rehoboth Beach, nel Delaware, nell'ambito della vicenda sui documenti classificati
@UltimoraPolitics
Il presidente americano #Biden sulle elezioni: "Avete visto quello che è accaduto in Italia, vedrete quello che accadrà nel mondo. Non siate ottimisti."
@UltimoraPolitics
🇺🇸 Tre anni dopo l'assalto di Capitol Hill solo il 62% degli elettori ritiene l'elezione di #Biden legittima.
🔥 Uno dei tanti numeri che testimonia una sfiducia nella democrazia americana che, al di là dei complotti più assurdi come quelli che hanno originato gli eventi del 6 gennaio 2021, ha anche delle ragioni concrete.
Nel quarto numero di 270 ci siamo chiesti: la democrazia in America funziona ancora?
Si legge e ci si iscrive qui, gratis: https://youtrend.substack.com/
🎙️#Biden ha appena perso le elezioni
Il primo grande effetto prodotto dall'intervista di Tucker Carlson a Vladimir Putin è stato quello di aver posto fine alla carriera politica di Joe Biden.
Proprio nelle stesse ore in cui usciva l'intervista, a Washington è andato in scena l'ennesimo psicodramma che ha coinvolto il presidente americano.
Nell'ambito dell'indagine che avrebbe portato, come nel caso di Trump, all'incriminazione di Biden per essersi portato a casa documenti riservati mentre era vicepresidente, il procuratore Robert Hur ha deciso di non incriminarlo perché ritiene sia "un uomo anziano ben intenzionato, con significativi problemi di memoria" e dunque non perseguibile da una Corte.
Biden per tutta risposta ha convocato una conferenza stampa per smentire con rabbia il report, ma commettendo un'altra gaffe: ha scambiato il presidente egiziano al-Sisi per il presidente del Messico.
Sui social e nell'opinione pubblica la spinta repubblicana sull'inadeguatezza di Biden sta montando alla grande, e ciò sta naturalmente producendo un immediato paragone tra lo stato di salute di Biden e quello di Putin, sancendo di fatto, a pochi mesi dalle elezioni USA, la sconfitta del candidato democratico.
Persino Repubblica è costretta a titolare così.
https://x.com/SavinoBalzano/status/1815639714411504110?t=Gfu1uF8Ia9wIGcnvWoxXnA&s=19
Cronache dal "centro", dal "polino", in poche battute: compreso che persino @CarloCalenda non lo si potrà menare ancora per il naso, tocca trovare un modo per portare la pagnotta a casa, in prospettiva.
All'esito del folgorante risultato delle europee, si dividono @matteorenzi e @marattin: lo zero virgola nulla da un lato e lo zero virgola niente dall'altro.
Prendere esempio da #Biden proprio no?
🇺🇸 Research group Marco Polo releases a 630-page report with 2,020 citations that thoroughly documents 459 crimes committed by the Biden family & their business associates.
•140 business crimes
•191 sex crimes
•128 drug crimes
Little media coverage ...
#Biden
Share and subscribe to American Majority