Что делать если нужно поставить какую-то 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
🏀Baloncesto
Eslovaquia, crítica tras el triple de Yusta: "Es imposible"#Baloncesto
Quedaban 0,4 segundos para concluir la prórroga (la que sería la primera) y Eslovaquia tenía ganado el partido ante España. La selección centroeuropea tenía posesión con 67-64 a su favor. Mario Ihring sacó de fondo… mal. Tan mal que el balón llegó a Santi Yusta, que en una acción imposible levantó el balón para anotar el triple del empate. Segundo tiempo extra. A la Selección no se le escaparía el triunfo (72-76). La desolación inundó el Tipos Arena de Bratislava.
Muchos defienden que es imposible realizar la acción si el reloj no se ha puesto tarde en funcionamiento. Así lo cree Aramis Naglic, seleccionador eslovaco: “Puedo hablar mucho sobre lo que pasó al final. Creo que en teoría no es posible tocar el balón en 0,4 segundos, que caiga al suelo y luego tirar. No es posible y pongo mi mano derecha”.
https://as.com/baloncesto/mas_baloncesto/eslovaquia-critica-tras-el-triple-de-yusta-es-imposible-n/
🏆@Info288_deportes
🏀Baloncesto
La Fiscalía pide 14 años de cárcel para el entrenador de baloncesto Mario López por agresión sexual a una menor#Baloncesto
La Fiscalía Provincial de Vizcaya ha solicitado una condena de 14 años de prisión contra Mario López, el que fue entrenador del club de baloncesto Lointek Gernika y seleccionador nacional de la sub-16, sub-18 y sub-19 femenino. Le acusa de agredir sexualmente de forma continuada a una niña desde que tenía 10 años y hasta que cumplió los 16. Jugaba en el equipo del colegio. El juicio arranca en la Audiencia Provincial el 14 de enero de 2025.
Según relata el escrito de acusación, al que tuvo acceso ABC, a partir de julio de 1998, beneficiándose de la precaria situación familiar de la niña, López «buscaba y aprovechaba momentos para estar a solas» con ella «a fin de mantener relaciones sexuales». El primer contacto físico lo fue tras invitarla a ver un partido de baloncesto en una vivienda de Guernica. Ella se puso a llorar. Tenía 10 años.
«El acusado aseguró que no volvería a pasar si bien lo cierto es que tales encuentros continuaron en el tiempo y subieron de intensidad, sometiéndose ella dado el temor que le infundía, ante la gran diferencia de edad y posición», dice la Fiscalía.
Explica que además, López desplegaba conductas que a ella le provocaban temor, «como tocar el claxon cuando pasaba en coche por su casa, conducir de manera agresiva y temeraria cuando la trasladaba o ser agresivo y desproporcionadamente exigente con ella en los entrenamientos». Le imponía hablar con él todos los días por teléfono.
https://www.abc.es/deportes/fiscalia-pide-anos-carcel-entrenador-baloncesto-mario-20241003173450-nt.html
🏆@Info288_deportes
💥Balón de básquet Wilson NBA AUTHENTIC
Vive la emoción del juego en interiores y exteriores
✅OFERTA: 32.78€
❌ Antes: 49.95€
💰Ahorras un 34%🔥
Diseñado para un agarre óptimo y durabilidad excepcional
👉 Hazte con él y marca la diferencia en tus partidos
#baloncesto#deporte#navidad#ofertas#viral#wilsonnba#outdoorbasketball#descuentos
🛰️Oferta publicada en Deporte y Outdoor
💥Rodilleras VITTO para Deporte y Fitness
Protección y comodidad para tus rodillas en cada movimiento
✅OFERTA: 9.99€
❌ Antes: 14.99€
💰Ahorras un 33%🔥
Diseño transpirable y antideslizante para un rendimiento óptimo
👉 Hazte con ellas y entrena sin límites
#rodilleras#deporte#crossfit#ligamento#menisco#entrenamiento#baloncesto#navidad
🛰️Oferta publicada en Deporte y Outdoor
📸🖼📸🖼📸🖼📸🖼📸🖼📸🖼
➡️ Fondos de pantalla sobre deporte.
#Deporte#Motos#Motociclismo#Golf#Futbol#Ciclismo#Gimnasia#Navegacion#Surf#Baloncesto#FondosDePantalla
@fotosyfondos
📸🖼📸🖼📸🖼📸🖼📸🖼📸🖼