Что делать если нужно поставить какую-то 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
🇵🇪#Peru: Former Senate candidate Jorge Luis Alcalde Alfaro was assassinated by a hitman in broad daylight in Trujillo three days ago.
He was about to enter his car when another vehicle pulled up and opened fire. He later died on the way to the hospital.
(📹 via @cartelwatchnet on X & Caretas.pe)
🗺 Peru 🇵🇪
🟠It turns out you can ski not only on snow but also on sand. Such skiing takes place in the Ica Desert in Peru!
This is called sandboarding.
📏
📏
📏
📏
📏
📏
📏
📏
#Peru | @voyage
🗺 Peru 🇵🇪
🟠It turns out you can ski not only on snow but also on sand. Such skiing takes place in the Ica Desert in Peru!
This is called sandboarding
📏
📏
📏
📏
📏
📏
📏
📏
#Peru🇵🇪@voyage
🗺 Peru 🇵🇪
📏
📏
📏
📏
📏
📏
📏
📏
🟠It turns out you can ski not only on snow but also on sand. Such skiing takes place in the Ica Desert in Peru!
📏
📏
📏
📏
📏
📏
📏
📏
This is called sandboarding.
📏
📏
📏
📏
📏
📏
📏
📏
#Peru🇵🇪@voyage
🗺 Peru 🇵🇪
It turns out you can ski not only on snow but also on sand. Such skiing takes place in the Ica Desert in Peru!
This is called sandboarding.
#Peru
@voyage
Peru🇵🇪
Impressive natural masterpiece - the Rainbow Mountains in the Cusco region. ⛰🌈
The colorful layers of these mountains were formed millions of years ago from red sandstone, which, under the influence of climatic conditions, underground water, and mineral impurities, became stained with yellow, green, white, and other colors.
#Peru
@voyage
Peru🇵🇪
A walk with a magnificent view of Machu Picchu.
Machu Picchu is a legendary city nestled in the heart of the Andes at an altitude of 2400 meters. It is an ancient Inca settlement located between two mountain peaks. 🏔
When tourists gaze at the ruins of the city of Machu Picchu, which stand out dramatically among the jungle-covered mountain peaks and steep slopes, and the terraces descending into the valley, their breath is taken away.
#Peru
@voyage
The right to die
#video#Peru
Ana Estrada is confined to bed most of the time and can breathe only with a respirator. She lives with polymyositis, a rare muscle disease with no cure. Since 2016, Ana has been writing a blog called ‘Ana seeks a dignified death’. In addition, she started a legal battle to decide to end her life ‘when the time comes’. Assisted death is illegal in her country of Peru.
Peru is primarily a Catholic country, where euthanasia is prohibited alongside same-sex marriage and abortion. However, in 2021 a court ruled in favour of Ana and cleared anyone assisting in her death of criminal charges. Ana says she would decide to die when she could no longer write her blog.
On this day in 2000, the Dutch lower house of parliament voted to legalise euthanasia. Thus, the Netherlands became the first country that allowed mercy killings. Euthanasia is also legal in Spain, Belgium, Luxembourg, Canada and Colombia.
Follow: https://t.me/rtdocumentary
#video#Peru
Hundreds of thousands of Peruvian women were forcibly sterilised between 1996-2000 as part of President Alberto Fujimori’s family planning programme. The initiative was launched to reduce poverty and cut birth rates among the poor. While it was supposed to be consensual, women involved in the programme say otherwise. Most of the victims came from poor indigenous communities.
Josefa was at home when nurses came and forced her to go to the hospital. She still recalls waking up after the procedure and seeing other women crying out their husbands’ names in pain. In the following years, Josefa suffered from infections and cancer. Decades later, Josefa and others are still seeking justice through a class action suit against the ex-president.
Follow: https://t.me/rtdocumentary
#GASTRONOMIA#PERU🍲 | Cultura, sabor y frescura: La magia de la gastronomía peruana en Déjame Que Te Cuente https://ift.tt/hEqG9Wf March 22, 2025 at 06:00AM
#GASTRONOMIA#VENEZUELA#PERU👩🏻🍳🧑🏻🍳👨🏻🍳 | Chef venezolano triunfa con restaurante peruano en su país: "Necesitaba de la gastronomía de Perú" https://ift.tt/YdZC8u1 August 02, 2025 at 09:15AM