Что делать если нужно поставить какую-то 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
Referendum giustizia, #AVS ha detto che riserverà agli elettori fuorisede i propri posti per ricoprire il ruolo di rappresentanti di lista ai seggi, in modo che possano votare nel seggio al quale sono assegnati, anche se diverso da quello in cui sono residenti. (ilPost)
@UltimoraPolitics24
#AI#AVs
Помимо сильного положительного влияния на роботов, развитие LLM также хорошо влияет на развитие автономных технологий в грузо- и пассажироперпвозках. Поэтому инвестиции в компании разрабатывающие беспилотные авто и грузовики это тоже ахуенная тема.
Тейки все такие же. И про снижение себестоимости тоже при росте объемов беспилотных машин в автопарках компаний-операторов грузо- и пассажироперевозок.
Скрины в этом посте из того же репорта BofA, что прикреплен выше. В посте ниже ща закину репорт Goldman Sachs по AVs где больше прогнозов по кол-ву машин, penetration в существующий автопарк и прогноз себестоимости производства AVs
Из таких компаний держу Pony AI и WeRide
La #Camera approva con 299 sì la risoluzione di maggioranza che impegna il governo a "evitare che arrivino fondi ad Hamas che siano utilizzati per finanziare attacchi terroristici e incitare all'odio verso Israele". Approvate anche le tre risoluzioni presentate dalle opposizioni, con lo stralcio (in quella di #M5S-#PD-#AVS) della parte relativa all'insediamento dei coloni in Cisgiordania
@UltimoraPolitics
No all'introduzione del salario minimo: la #Camera approva la mozione di maggioranza con 163 voti a favore, 121 no (#M5S, #PD e #AVS) e 19 astenuti (Terzo Polo). Respinti i testi delle opposizioni
@UltimoraPolitics
Decreto Pa 2, il governo ritira l'emendamento che introduceva cinque dipartimenti al Ministero della Cultura. Esultano #PD, #M5S, #Azione e #AVS.
@UltimoraPolitics
Aboubakar #Soumahoro (#AVS) lancia un appello a tutti i partiti di opposizione: "Saliamo sulle navi dei migranti, per far valere i principi di umanità racchiusi nella nostra bella e attuale Carta costituzionale"
@UltimoraPolitics
Il tribunale di Catania accoglie il ricorso di un migrante, sbarcato a Lampedusa e portato nel Cpr di Pozzallo, giudicando il recente decreto del governo "illegittimo in più parti": i giudici contestano la nuova procedura di trattenimento e la cauzione da circa 5.000 euro da pagare per non andare nel centro. #FdI: "Decisione politica e ideologica". #Bonelli (#AVS): "Meloni porta avanti una campagna di distrazione di massa che punta a trasformarla in vittima di un complotto per nascondere le sue incapacità"
@UltimoraPolitics
#Senato
Approvate le risoluzioni di maggioranza, PD e Terzo Polo, alle comunicazioni del ministro della Difesa, Guido #Crosetto, sul rinnovo dell'autorizzazione all'invio di mezzi militari all'Ucraina. La prima ha ottenuto 143 sì, 29 no e un astenuto. Le altre due 144 voti favorevoli e 28 contrari. Le risoluzioni di #AVS e #M5S non sono state votate
@UltimoraPolitics
Confermata in Cassazione la condanna a un anno e sei mesi inflitta per un reato di falso dalla Corte d'appello di Reggio Calabria nell'ottobre 2023 a Mimmo #Lucano, ex sindaco di Riace, oggi eurodeputato nelle liste di #AVS
@UltimoraPolitics
#Camera
Scontro tra #Meloni e Angelo #Bonelli (#AVS), che ha mostrato due sassi raccolti dal letto del fiume Adige in secca per criticare il governo sul modo con cui sta gestendo il problema della siccità nel Nord Italia. La premier replica: "Non sono Mosè"
@UltimoraPolitics