Что делать если нужно поставить какую-то 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
Ya los exhibieron por mentirosos 🤥
🔴 Tras la resolución del #INE, Álvarez Máynez siguió defendiendo el spot de #MC (@MovCiudadanoMX) asegurando que todo es verdad 🍊🙄‼️
https://sinlineamx.com/ine-ordena-retirar-spot-movimiento-ciudadano-contra-morena/
¡No aprende! 🙄
🔴 El #INE concluyó que el contenido del spot de #Morena no incurre en calumnia contra #SalinasPliego, pues no presenta información falsa 📺✅
https://sinlineamx.com/ine-rechaza-segunda-vez-retirar-spot-morena/
¿No que el #INE no se toca? 🤡
🔴 Ahora resulta que los amigos de #AcostaNaranjo se quejan por acatar las leyes electorales que tanto defendían 😬 | ¿Cómo ven? 🗳️🙄👇
🇲🇽 Мексика готовится к масштабным выборам 1 июня 2025 года 🗳️
В это воскресенье жители Мексики отправятся на избирательные участки, чтобы сделать свой выбор на важнейших выборах года. В повестке дня:
🔹Выборы судей
🔹Местные выборы в штатах Дуранго, Веракрус и Пуэбла
Почему эти выборы важны?
- Первые прямые выборы судей меняют судебную систему.
- Локальные выборы влияют на борьбу с преступностью.
- Реформа может повлиять на экономику и отношения с США.
Национальный избирательный институт (INE) запустил специальную информационную кампанию, которая помогает гражданам быстро и удобно узнать, где находится их избирательный участок. Это стало частью усилий по укреплению прозрачности выборов и стимулированию гражданской активности.
Эти выборы имеют большое значение как для судебной системы, так и для регионального управления.
#Мексика#Выборы2025#INE#Политика#НовостиМира#Democracia#Elecciones2025
👉Всегда свежие новости о странах Латинской Америки
🇨🇱⚒️Чили: Промышленный рост в апреле 2025 года благодаря горнодобывающему сектору
В апреле 2025 года промышленное производство Чили увеличилось на 3,8% по сравнению с аналогичным периодом прошлого года, в основном за счёт роста горнодобывающей отрасли.
Горнодобывающий сектор продемонстрировал рост на 10,1%, при этом добыча металлических руд, включая медь, увеличилась на 12,1%, что стало основным фактором общего промышленного роста.
Сектор электроэнергии, газа и водоснабжения сократился на 1,0%, в основном из-за снижения производства электроэнергии на 1,4%.
Кроме того, Индекс экономической активности (Imacec) за апрель 2025 года вырос на 2,5% по сравнению с апрелем 2024 года, чему способствовали положительные результаты в горнодобывающем секторе и онлайн-торговле.
Ключевые цифры:
• Промышленное производство: +3,8%
• Горнодобывающий сектор: +10,1%
• Добыча металлических руд: +12,1%
• Электроэнергия, газ и водоснабжение: -1,0%
• Imacec: +2,5%
#Чили#Экономика2025#Горнодобыча#Промышленность#Медь#Imacec#INE#Статистика
👉Всегда свежие новости о странах Латинской Америки!