Что делать если нужно поставить какую-то 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
Banii lui Dodon 💶 din Bahamas 🌴 - este investigația care l-a deranjat puternic pe Igor Dodon și ne-a atras în cel mai lung proces de judecată, în care a fost implicată redacția RISE Moldova. Detalii, AICI.
În final, RISE Moldova a câștigat dosarul la CEDO, iar despre aceasta am scris AICI.
Recent, Centrul pentru Jurnalism Independent Moldova a analizat deciziile semnate de judecătorii moldoveni care au încercat să desființeze ancheta "Banii lui Dodon din Bahamas", și a publicat un studiu amplu despre executarea hotărârii CtEDO în cauza RISE Moldova și Iurie Sanduta contra Moldovei.
Studiul poate fi citit, AICI.
Din concluziile și recomandările cercetării #CJI, am extras câteva observații și idei de reținut:
📍 "Cauza RISE Moldova și Iurie Sanduța denotă că provocările la adresa libertății de exprimare a jurnaliștilor nu au încetat".
📍 "Condamnarea statului la CtEDO în această cauză nu a avut loc din cauza precarității cadrului legal național, ci se „datorează” aplicării eronate a legii de către instanțele de judecată, fie că este vorba despre abateri comise cu intenție ori din neglijență gravă".
📍 "Republica Moldova este obligată să elaboreze și să prezinte Comitetului de Miniștri al Consiliului Europei un Plan de acțiuni în care să prevadă măsurile pe care trebuie să le întreprindă pentru a remedia și preveni repetitivitatea încălcărilor constatate în cauza RISE Moldova și Iurie Sanduța c. Moldovei".
📍 "Gravitatea abaterilor disciplinare comise de către judecătorii cărora le-a fost dedusă soluționarea cauzei în instanțele naționale impune necesitatea ca Ministerul Justiției al Republicii Moldova să sesizeze Consiliului Superior al Magistraturii în vederea constatării abaterii și sancționării judecătorilor vizați".
***
Susține activitatea noastră, AICI sau AICI.
🔎#Redirecționează 2% din impozitul tău pe venit pentru investigațiile care fac istorie.
Când depui declarația la Fisc, în format on-line sau print, trebuie să indici codul fiscal al RISE Moldova: 1014620001999 (în caseta M1 din formularul CET 18).
***
Urmărește-ne și pe Instagram și Twitter.
😁Samurai Submissions: finish Quickly From Turtle by Kenta Iwamoto😁
➡️In Samurai Submissions, BJJ’s fastest-rising star and B-Team standout breaks down his signature system for lightning-fast, high-percentage submissions from turtle — attacks so sneaky your opponents won’t realize they’re in danger until it’s already over.
➡️Kenta’s approach is brutally efficient: minimal movement, tight control, and submissions that hit before your opponent can react.
$127😍$9.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
👑MasterClass
✈️@bjjfanaticsinstructionals
#KentaIwamoto#Submissions#NoGi#CJI
🔥NEW RELEASE🔥
😁X Lock: For When Letting Go Was Never Your Strong Suit By Owen Jones😁
➡️Unlock a devastating new layer to your leg lock game with X Lock, the cutting-edge instructional by Owen Jones, one of the most technical minds rising through the ranks of B Team Jiu-Jitsu.
➡️Whether you're a straight ankle lock specialist or want to add serious firepower to your lower body arsenal, this instructional is designed to elevate your game, from positional awareness to crushing submissions.
➡️Use the X Lock to make your straight ankle locks faster, tighter, and more lethal—with precision grip mechanics that force the tap.
$99😍$9.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#OwenJones#Leglocks#CJI#NoGi
💁♀️Buy💁♀️
🔥NEW RELEASE🔥
😁Things I Didn't Show To Craig Jones: Maintaining An Advantage Over Time - Outside Passing By Jozef Chen😁
➡️Unlock the secrets to unstoppable no-gi guard passing with JPoint Camping, the latest BJJ instructional from one of the most elite no-gi competitors today, Jozef Chen.
➡️In this systematic instructional, Jozef guides you through the step-by-step process of dismantling even the most difficult no-gi guards, using a series of tried-and-true methods refined over years of high-level competition.
➡️Transform your guard passing into a dominant, methodical force, and learn how to effortlessly break through any guard. With Jozef Chen’s expert guidance, you’ll develop the mindset, precision, and fluidity needed to consistently control the pace and flow of your no-gi matches.
$127😍$11.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#JozefChen#CraigJones#CJI#GuardPassing
💁♀️Buy
💁♀️