Что делать если нужно поставить какую-то 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
#Election2026: From political core to political contraction: #Amhara region’s shrinking electoral space and uncertain future
As #Ethiopia prepares for its seventh general election scheduled for June 2026, the Amhara region, one of the country's most politically influential and historically significant regions, appears once again at risk of drifting toward a de facto one-party political order.
This review, part of Addis Standard's ongoing reporting to shed light on high-stakes electoral developments ahead of the upcoming vote, examines the evolution of the Amhara region's electoral landscape since 1995. As one of Ethiopia's largest regional states and home to one of the country's biggest electorates, the Amhara region has long served as a critical barometer of Ethiopia's democratic trajectory.
The Pretoria Agreement, which brought an end to the devastating Tigray war in November 2022, offered a brief moment of hope for Ethiopia's broader political .…….
Read more: https://addisstandard.com/?p=56362
#Election2026 - #Oromia at a crossroads: electoral contests, shrinking political space, and the risk of a de facto one-party region once again
As #Ethiopia prepares for its seventh general election scheduled for June 2026, Oromia, the country’s largest and politically most consequential region, appears once again at risk of drifting toward a de facto one-party political order.
The trajectory unfolding in Oromia carries implications not only for regional governance, but also for Ethiopia’s broader democratic and federal future.
This review, part of Addis Standard’s ongoing reporting to shed light on high stakes electoral developments ahead of the upcoming vote, examines the evolution of Oromia’s electoral landscape since 1995.
As Ethiopia’s largest regional state and home to the country’s biggest electorate, Oromia has long served as a critical barometer of Ethiopia’s democratic trajectory.
A review of elections over the past three decades reveals a ……..
Read more: https://addisstandard.com/?p=56346
#Election2026 - #Tigray at a Crossroads: war, fragmentation, and the prospect of elections without participation, once again
As Addis Standard concludes its final in-depth assessment of electoral prospects in #Ethiopia’s three major regional states, the spotlight turns to Tigray, a region whose violent rupture from the Ethiopian federation continues to shape political discourse ahead of the 2026 general election.
At the center of the debate is a question the current federal political dispensation has yet to adequately answer: can Tigray participate in the election, and if so, under what conditions?
Tigray’s political landscape remains heavily influenced by the Tigray People's Liberation Front (#TPLF), once the dominant force in both regional and federal politics through its leadership of the Ethiopian People's Revolutionary Democratic Front (#EPRDF).
But the party’s absence from.....
Read Addis Standard’s full in-depth analysis for a closer look at what lies ahead. https://addisstandard.com/?p=56406
Given the current political landscape and the shifting momentum shown in recent projections, it is widely argued that Donald Trump has no path to victory and will find it impossible to succeed in the upcoming election.
#Trump_WillLose#Election2026#Politics
#USA
#trumpexposed
✈️https://t.me/No_king_No_King