Что делать если нужно поставить какую-то 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
News: Overloaded Isuzu truck carrying dozens atop grain overturns, leaving at least 19 dead in #Amhara region
The accident shows the persistent risks associated with the widespread use of cargo trucks for passenger transport in rural Ethiopia, where limited transport options, now exacerbated by chronic fuel shortages across the country, often force residents to travel under dangerous conditions.
Many of the victims were residents of the same locality, often traveling together in groups for work between Tsagibji and Ebnat localities. “Yesterday [Sunday] alone, we sent 17 bodies back to one specific area,” the official said, adding that several victims were members of the same families.
The Deputy Commander also said the area where the accident occurred has been under the control of Fano fighters for the past three years, preventing authorities from reaching the scene to investigate the cause of the crash.
https://addisstandard.com/?p=56655.
In Defense of the Amhara Cause: An Open Letter to Mehdi Hasan. Read more. https://borkena.com/2025/11/29/in-defense-of-the-amhara-cause-an-open-letter-to-mehdi-hasan/@mehdirhasan@AJHeadtoHead#Ethiopia#Amhara
Targeting the Amhara Intelligentsia: Killings, Detentions, and the Legal Threshold of Genocide Under International Law. Read more.
https://borkena.com/2026/02/08/ethiopia-targeting-the-amhara-intelligentsia-killings-detentions-and-the-legal-threshold-of-genocide-under-international-law/#Ethiopia#politics#Amhara
Targeted And Forgotten: The Persecution, Displacement, Mass Killing, and Mass Arrest of the Amhara People in Ethiopia . Read more.
https://borkena.com/2026/03/29/ethiopia-targeted-and-forgotten-the-persecution-displacement-mass-killing-and-mass-arrest-of-the-amhara-people/#Ethiopia#Amhara#HumanRights
Amhara Suffering and the Crisis of Overcrowded Prisons in Ethiopia. Read more.
https://borkena.com/2026/01/11/ethiopia-amhara-suffering-and-the-crisis-of-overcrowded-prisons-in-ethiopia/#Ethiopia#Amhara#humanrights
A War Declared On Amhara — And Its People. Read more.
https://borkena.com/2025/12/06/ethiopia-a-war-declared-on-amhara-and-its-people/#Ethiopia#Amhara#humanrights
#Ethiopia: Federal Police say its forces "seize illegal weapons" intended for "terrorist purposes" after arriving in #Addis_Abeba from #Amhara region
Addis Abeba: The Ethiopian Federal Police claimed its forces have “seized illegal weapons”, “intended for terrorist purposes” after the arms allegedly arrived in Addis Abeba “from the Amhara region.”
In a statement, the Federal Police said the first seizure occurred at the Legetafo checkpoint, where officers “intercepted a vehicle”.
Following what the federal police claimed as a “rigorous inspection,” authorities discovered “eight AK-47 assault rifles, 151 rounds of AK-47 ammunition, 17 rounds of Bren machine gun ammunition, and seven AK-47 magazines concealed inside the vehicle.”
“The illegal weapons were being transported for terrorist purposes,” the Federal Police said, adding that the suspects were “detained at the scene.”
https://x.com/addisstandard/status/2037186920086733010?s=20
Just War and the Fano Struggle: A Brief Moral Evaluation. Read more.
https://borkena.com/2026/01/28/ethiopia-just-war-and-the-fano-struggle-a-brief-moral-evaluation/#Ethiopia#Fano#Amhara#Politics
Evaluating ‘Amhara Fano Unity’ and its Unrealistic Exaggerated Concerns. Read more.
https://borkena.com/2025/12/31/ethiopia-fano-evaluating-amhara-fano-unity-and-its-unrealistic-exaggerated-concerns/#Ethiopia#news#Fano#Amhara
Ethiopian Rebels Claim They Have killed 45 Gov’t Soldiers in Gojjam. Read more. https://borkena.com/2025/12/25/ethiopian-rebels-claim-they-have-killed-45-govt-soldiers-in-gojjam/#Ethiopia#news#Amhara#Fano