Что делать если нужно поставить какую-то 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
✅ 10 TRAINS🆓
• Personal Use License.
#coloringpage#trains#speed#kids
◆═════● PREMIUM ●═════◆
⭐ TRAINS: Coloring Book PDF Ready To Print.
• 40 Trains.
• Test Color Page.
• Print-Ready PDF 8,625x11,250 in.
• PNG 4215 x 5500 px High-quality.
• Remove watermark.
• Commercial Use License.
7.99€5.99€
👉Buy Now🛒
🪁Kites paralyzed operations at Jakarta airport
📰 In Jakarta, kites disrupted the takeoffs and landings of 21 aircraft: planes had to circle back or change airports.
🚄 Similar incidents have already delayed Whoosh high-speed trains 169 times in six months and cause annual accidents on Bali's power grids.
⛔️ The authorities remind the public that kites may only be flown away from airports, railways, and power lines.
#safety#airport#trains@BaliNews
🇬🇧Un incendie dans le nord de Londres provoque de nombreuses perturbations sur les lignes de trains, rapporte Sky News.
Au total, environ 70 pompiers ont été impliqués dans l'extinction de l'incendie dans le quartier de Camden.
#londres#incendie#trains
🇮🇩Le bilan de la collision entre deux trains dans la province de Java occidental en Indonésie s’alourdit à 14 morts et 84 blessés, a rapporté l’agence Antara.
#indonésie#trains#collision
🇮🇩 Au moins 3 personnes ont été tuées et 29 autres blessées dans une collision entre deux trains en Indonésie, rapporte Antara.
#indonésie#trains#collision
🇩🇰 Une collision frontale entre deux trains survenue près du village de Kagerup, au Danemark, a fait dix-sept blessés, dont quatre personnes se trouvent dans un état critique, a rapporté l’agence Ritzau.
#danemark#trains#collision#victimes
Two High-Speed Trains Collided in Southern Spain
At least 39 people have been killed and 24 others seriously injured after two trains collided in southern Spain on Sunday night in what the prime minister, Pedro Sánchez, called “a night of deep pain for our country”.
A high-speed Iryo train travelling from Málaga to Madrid derailed near the municipality of Adamuz in Córdoba province, crossing on to the other track where it hit an oncoming train, Adif, Spain’s rail infrastructure authority, posted on X.
The second train, which was operated by the state rail company, Renfe, also derailed and went down an embankment, authorities said.
The accident happened about 10 minutes after the Iryo left Málaga at 6.40pm (1740 GMT), Adif said.
“Approximately 300 people were on board at the time of the accident,” Iryo said.
“The derailment affected cars six through eight. The Guardia Civil and firefighters are currently working intensively at the scene to evacuate all passengers and have set up a joint emergency response team.
“Iryo deeply regrets the incident, has activated all its emergency protocols, and is collaborating closely with Adif, Renfe, and the relevant authorities to determine the causes and manage the situation as effectively as possible.”
Another witness told the public broadcaster RTVE that one of the carriages of the first train had completely overturned.
An unidentified passenger on the second train – which was going from Madrid to Huelva – told public broadcaster TVE:
“There were people screaming, their bags fell from the shelves. I was travelling to Huelva in the fourth carriage – the last, luckily.”
Television images showed medical crews and fire services at the scene.
Spain’s transport minister, Óscar Puente, said the cause of the accident had yet to be established. Speaking at a press conference at Atocha station in Madrid, he added it was “really strange” that a derailment should have happened on a straight stretch of track. This section of track was renewed in May, he said.
Puente said most of those killed and injured had been in the first two carriages of the second train.
#trains#collided#spain#puente#Iryo
📱American Оbserver - Stay up to date on all important events
🇺🇸