Что делать если нужно поставить какую-то 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
🇬🇧#UK - Il parlamento ha approvato in via definitiva una legge per eliminare i 92 “membri ereditari” della Camera dei Lord, la camera alta del parlamento. È una decisione storica che metterà fine a una consuetudine che durava da più di 700 anni. (ilPost)
@UltimoraPolitics24
🇬🇧#UK Trump has been at the center of discussion due to a breach of protocol.
British social media is discussing an incident in which US President Donald Trump walked past Queen Camilla to shake hands with his acquaintances, which was considered a breach of protocol.
🇬🇧#UK. Armed police spotted outside a McDonald's in Kensington.
Armed Police arresting a suspect outside McDonald's. Armed response was deployed due to intelligence suggesting high risk,possible weapon or violence, it's standard UK protocol for public safety. Police haven't released specifics on the exact reason or threat yet, as it's an active investigation.
(By the looks of one of those green dots, someone has had far too much coffee.)
Follow us -> LiveLeak
#UK: Il Regno Unito ha affermato che non parteciperà alle operazioni militari contro l'Iran, anche se il governo si è espresso in supporto agli obiettivi dichiarati dagli USA e Israele.
🇬🇧The Psychological Attack on the UK, Part 2 | UKColumn - 2021
If Bezmenov had been correct in just one or two of his predictions, then we might assume that coincidence was at work. In reality, he was correct in all of his predictions. Common sense therefore tells us that the plan he describes must be both real and effective. And that plan ultimately leads from 'Demoralisation' to 'Destabilisation', to 'Crisis' (Chaos) and then 'Normalisation' — so-called 'peace' (actually pacification) under a socialist/communist dictatorship of global scale.
In Part 2 as we tackle the key subversively targeted area of Security (covering the intelligence community, police and military), but first we address the demoralising and destructive plans detailed for Law and Order and Social Relations.
To recap, the following descriptive paragraph sets out the key warning within Story's highly detailed and meticulously researched book:
The European Union Collective Enemy of its members states
@ukcolumn@EastApp
#UK
🇬🇧The Psychological Attack on the UK: Start of a Series | UKColumn – 2021
Alex Thomson and Brian Gerrish discuss the origins of the psychological attack on the UK in the first part of a series. Our starting documentation and analysis centres on the book by Christopher Story: The EU Collective - Enemy of its Members States.
@ukcolumn@EastApp
#UK
🇬🇧#UK: Footage shows tens of thousands of protesters marching through London as two rival demonstrations, the “Unite the Kingdom” rally and a large pro-Palestine march, take place simultaneously across the capital.
According to police, at least 11 people have been arrested since the demonstrations began.
🇬🇧#UK: London is preparing for one of its largest public order operations in recent years as two major demonstrations, the pro-Palestine “Nakba Day” march and the “Unite the Kingdom” rally organised by Tommy Robinson, take place simultaneously this weekend in central London, alongside the FA Cup Final.
For the first time in a protest policing operation in the UK, live AI facial recognition will be used alongside aerial surveillance employing helicopters and drones, as well as armoured vehicles and large-scale specialist policing units deployed across the capital. Around 4.000 officers will be involved in the operation, with reinforcements from forces across England and Wales, as authorities reportedly prepare for "significant public order risks" across multiple protest routes.
(via Reuters & BBC)