Что делать если нужно поставить какую-то 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
🐺 ¡Demos la bienvenida a los 11 equipos invitados a la temporada 6 de PGL Wallachia! 🇷🇴
📅 Noviembre 15-23
💰 Piscina de premios: $1,000,000 USD
👥 Equipos: 16 (5 de CQs)
🎥 En vivo desde PGL Studios
#PGLWallachia
@Info_Dota2
Не удаётся забрать финальную карту. Уступаем в этой серии и покидаем квалификации на PGL Wallachia S4
😔
Спасибо всем, кто поддерживал парней и болел за нас на трансляции 🫶
#Dota2#PGLWallachia
Невероятный камбэк 🔥 Парням 1000 лайков за эту катку, а мы двигаемся дальше 😉
Сыграем в полуфинале нижней сетки сегодня в 19:00 МСК!
#Dota2#PGLWallachia
🟢 ¡KUROKY EL PACIFICADOR!
KUROKY The GOAT🙏🔥
Con una foto en sus redes sociales, Sonneiko aclaró que el altercado que tuvo con ATF ha quedado solucionado gracias a la intervención de Kuroky y otras personas 😊
🗣️"Resolvimos el problema.
Gracias a Kuroky por ayudarnos a hablar de las cosas. En cuanto tuvimos la oportunidad de hablar, pudimos resolver el problema en tan solo un par de minutos.
La próxima vez podré manejar mejor situaciones como esta.
¡Juguemos Dota y divirtámonos!" - escribió Sonneiko en X.
🗣️"Dejando el drama de lado, buena suerte a todos, es hora de ganar." - complementó ATF en su cuenta.
🔹Mathew tenía razón, Kuroky te cambia la vida cuando te habla xd ☺️🙏
#dota2#esports#Tinbet#PGLWallachia
@Info_Dota2
🟢 ¡ADIÓS VAQUERO! 😢🔥
-El día de hoy se confirmó lo que tanto se hablaba entre bambalinas, las organizaciones de G2 Esports e Invictus Gaming anunciaron el fin de su colaboración en la escena de Dota 2 🙁
🔹Su escuadra seguirá compitiendo bajo únicamente la bandera de Invictus Gaming para esta temporada 2024-2025. 👍
Para finalizar, G2 agradeció IG por su apoyo en su expansión al público chino, de hecho, tienen planes de seguir haciéndolo, por lo que pronto anunciarán nuevos proyectos en la región asiática. 😉
#dota2#esports#Tinbet#PGLWallachia
@Info_Dota2
🟢 ¡CASI SE VAN A LOS GOLPES! 😱🔥
-CHISMECITO FUERTE EN LA PGL SEÑORES 🤭
Resumen:
-Hace 3 meses, ATF insultó a Sonneiko en unas rankeds.
-Sonneiko le dijo que "Cuando se vean en una LAN, le va a caer su 'chiquita'" 😮
-Hoy se toparon en el HOTEL donde se juega la PGL Wallachia y Sonneiko cumplió.
Según las declaraciones de Falcons, Sonneiko se acercó a ATF y le dijo pidió ir "afuera del hotel" con algo de fuerza y entre 'amenazas'. 😱
Menos mal los managers los detuvieron antes de que pase a mayores. Los admins de PGL observaron la situación y castigaron a AVULUS (Team de Sonneiko) con penalidad en el draft. Sin embargo, se está estudiando la posibilidad de una mayor penalización debido a la gravedad del asunto.
#dota2#esports#Tinbet#PGLWallachia#NoArruguesATF
@Info_Dota2
Aydin "iNSaNiA" Sarkohi, support de Team Liquid, habló sobre el difícil momento que atraviesa su equipo en una entrevista durante para la PGL Wallachia Season 3.
"Creo que actualmente estamos en nuestro nivel de juego más bajo desde que MATUMBAMAN y zai se unieron al equipo. En términos de resultados y rendimiento, este es probablemente nuestro peor período en los últimos tres años."
Según el capitán, la clave del bajo rendimiento radica en la falta de claridad dentro del equipo:
"Antes, poníamos esfuerzo y eso nos ayudaba a mantenernos a flote, incluso cuando el barco parecía hundirse... pero ahora, simplemente no funciona. Seré honesto, estamos un poco confundidos dentro de nuestro equipo." 😞
¿Podrá Liquid encontrar su rumbo? 🤔💥
Mencionar que la entrevista fue realizada antes de su victoria contra Falcons el día de hoy 😎
#ESB#Dota2#Esports#TeamLiquid#PGLWallachia
@Info_Dota2