Что делать если нужно поставить какую-то 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
Nota #FdI: “Fratelli d’Italia difende le regole democratiche di convivenza che si basano sul diritto di manifestare e il dovere di farlo pacificamente e nel rispetto della legge. La sinistra che spalleggia i violenti è la causa dei disordini a cui abbiamo assistito”.
@UltimoraPolitics
Come funziona l'emendamento #FdI per gli studenti fuorisede ❓
Esempio 1:
Mario è un ragazzo residente a Cosenza (Circoscrizione Sud) ma studia a Napoli (Circoscrizione Sud)
Mario può votare a Napoli in un'apposita sezione elettorale: partiti e candidati sono gli stessi
Esempio 2:
Giulia è una ragazza residente a Cosenza (Circoscrizione Sud) ma studia a Pavia (Circoscrizione Nord-Ovest)
Giulia deve presentare una domanda al Comune di Cosenza entro 35 giorni dal voto. Dopo il via libera, Giulia può votare in una speciale sezione elettorale del capoluogo di regione: a Milano potrà votare per i partiti e i candidati della Circoscrizione Sud
Nota Bene:
Mario e Giulia possono votare fuorisede solo per le Europee, ma non per le Amministrative
@UltimoraPolitics
Salario minimo, l'invito di #FdI alle opposizioni: "Rinvio dell'esame della proposta a settembre per aprire un confronto più ampio sul tema di lavoro e retribuzione. Altrimenti, settimana prossima si andrà alla votazione dell'emendamento soppressivo"
@UltimoraPolitics
Superbonus, niente proroga per le 'villette'. Fonti parlamentari riferiscono che si va verso il ritiro dell'emendamento di #FdI al Milleproroghe che prevedeva l'estensione dal 31 marzo al 30 giugno
@UltimoraPolitics
Eletto a Bologna il segretario della Cgil Michele Bulgarelli con l'inno Urss. Attacco di #FdI: "Landini chieda scusa, è un'offesa alle vittime ucraine"
@UltimoraPolitics
Case green, l'Ue accelera sulla direttiva che obbliga di portare entro il 2030 tutti gli immobili almeno in classe E: due edifici italiani su tre sarebbero fuori norma. Ira di #FdI, che si dice pronta a bloccare la norma: "Le case degli italiani non si toccano"…
Case green, l'Ue accelera sulla direttiva che obbliga di portare entro il 2030 tutti gli immobili almeno in classe E: due edifici italiani su tre sarebbero fuori norma. Ira di #FdI, che si dice pronta a bloccare la norma: "Le case degli italiani non si toccano"
@UltimoraPolitics
Manovra, la versione finale dell'emendamento di #FdI approvato in commissione Bilancio prevede che i cinghiali abbattuti in città potranno essere destinati al consumo alimentare, una volta sottoposti ad analisi igienico-sanitarie
@UltimoraPolitics24
#Italia
Con 84 voti favorevoli e 58 contrari, al Senato è stata approvata definitivamente la proposta di legge presentata da #FdI|ECR per rendere la gestazione per altri (GPA) un reato universale, cioè perseguibile in Italia anche se praticata all’estero da cittadini o cittadine italiane.
La legge consiste in un solo articolo, che modifica la legge che rende illegale la GPA aggiungendo questa frase: «Se i fatti di cui al periodo precedente sono commessi all’estero, il cittadino italiano è punito secondo la legge italiana».
Nota: La gestazione per altri è la tecnica di procreazione assistita prevede che la gravidanza sia portata avanti da una persona per conto di altri. In Italia è vietata dalla legge 40 del 2004, la legge di riferimento per la procreazione assistita, con un divieto che prevede la reclusione fino a due anni e una multa fino a un milione di euro.
@OsservatorioItaliano
Lunga intervista del TIME a Giorgia #Meloni e alla leadership di #FdI sul TIME, che le dedica la copertina.
Leggila qui 👉https://time.com/7304882/giorgia-meloni-interview/
@UltimoraPolitics
Giorgia #Meloni (#FdI): “l’attuazione del PNRR procede nei tempi previsti e nel rispetto di tutti gli obiettivi concordati a livello europeo, unici parametri di valutazione oggettivi dello stato di avanzamento del PNRR.
Ringrazio il Ministro Fitto per il grande lavoro svolto in questi anni nell’attuazione del PNRR, che ha consentito all’Italia di essere la prima Nazione in Europa per numero di obiettivi raggiunti, per risorse complessive ricevute e per richieste di pagamento formalizzate”.
@UltimoraPolitics