Что делать если нужно поставить какую-то 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
🗺Mauritius 🇲🇺
The emotions of being in the open ocean surrounded by a pod of whales are indescribable.
The most common whales around Mauritius are sperm whales. Swimming with them is completely safe.
#Mauritius
@voyage
Trump Called the UK “very stupid”
Trump has suggested Britain’s decision to cede the Chagos Islands to Mauritius is among the reasons he wants to take over Greenland.
The US president, who is travelling to Davos in Switzerland for the World Economic Forum, made the claim as he ramped up his rhetoric on acquiring the Arctic territory.
Trump fired off a flurry of posts on his Truth Social platform overnight on Tuesday about taking over Greenland, which is a territory of Denmark, the US’s Nato ally.
Writing on the website, Trump said “Shockingly, our “brilliant” Nato Ally, the United Kingdom, is currently planning to give away the Island of Diego Garcia, the site of a vital US Military Base, to Mauritius, and to do so FOR NO REASON WHATSOEVER.
“There is no doubt that China and Russia have noticed this act of total weakness. These are International Powers who only recognise STRENGTH, which is why the United States of America, under my leadership, is now, after only one year, respected like never before.
“The UK giving away extremely important land is an act of GREAT STUPIDITY, and is another in a very long line of National Security reasons why Greenland has to be acquired.”
The move will come as a huge shock to No 10 after the US secretary of state, Marco Rubio, gave his warm endorsement of the handover when it was first approved.
It will also add fuel to Conservative and Reform criticisms of the move, which have cited US concerns as a reason to deny the deal with Mauritius.
Immediately after Trump’s comments, the shadow foreign secretary, Priti Patel, said:
“President Trump has said what we’ve said all along – Labour’s £35bn Chagos surrender is a bad deal for Britain and bad for our national security. We’ve opposed it from day one and it’s time Starmer put the security of our country first and scrap his rotten deal.”
Nigel Farage, the Reform UK leader, said: “Thank goodness Trump has vetoed the surrender of the Chagos islands.”
The UK has signed a £3.4bn agreement to cede sovereignty over the Chagos Islands to Mauritius but the deal is facing significant opposition in the House of Lords.
On Monday, the MP Andrew Rosindell, who defected from the Conservatives to Reform UK, cited a failure to stand up for the Chagos Islands as a major factor in leaving the party.
At the time of the agreement in May 2025, Rubio said the US “welcomed the historic agreement”.
It went on : “This is a critical asset for regional and global security. President Trump expressed his support for this monumental achievement during his meeting with prime minister Starmer at the White House.
“This milestone reflects the enduring strength of the US-UK relationship.”
Critics of the handover have said the deal gives China an opening in the region because of its close relations with Mauritius.
Trump has regularly cited fears of Chinese influence as a reason he intends the US to take over Greenland.
#trump#britain#mauritius#chagos
📱American Оbserver - Stay up to date on all important events
🇺🇸
News: #WB debars PwC #Africa affiliates over ‘collusive and fraudulent practices’ linked to Ethiopia–Kenya power project
The World Bank Group has announced a 21-month debarment with conditional release of three Africa-based affiliates of PricewaterhouseCoopers over what it described as “collusive and fraudulent practices” connected to a major regional electricity project involving #Ethiopia and #Kenya.
In a statement issued on 18 March, the Bank said #Mauritius-based PricewaterhouseCoopers Associates Africa Ltd., PricewaterhouseCoopers Limited, Kenya, and PricewaterhouseCoopers #Rwanda Limited were sanctioned “in connection with collusive and fraudulent practices” related to the Eastern Electricity Highway Project, part of the first phase of the #Eastern_Africa Power Integration Program in Ethiopia.
Read more: https://addisstandard.com/?p=55961
Africa Cup of Nations - Qualification🌍
2026-03-27 13:00 UTC
Somalia vs. Mauritius
Predicted outcome: Mauritius❌
Predicted score: 0:1
Actual: Draw 0:0
#Somalia#Mauritius
2026-03-27 13:00 UTC
Chad vs. Burundi
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Burundi 0:4
#Chad#Burundi
2026-03-27 16:00 UTC
Sao Tome and Principe vs. Ethiopia
Predicted outcome: Ethiopia✅
Predicted score: 1:2
Actual: Ethiopia 0:3
#SaoTomeandPrincipe#Ethiopia
#Football#AfricaCupofNations