Что делать если нужно поставить какую-то 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
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 Trump vuelve a amenazar con "pasar por Cuba" una vez que termine con Irán
🔶 El oro y la plata registran fuertes caídas tras fracaso del diálogo entre EEUU e Irán
🔶 "Un fraude total": hay descontento en Perú por retraso de las elecciones
🔶 Cancillería de México ordena visitas diarias a los centros de ICE en EEUU tras la muerte de otro connacional
🔶 La canasta básica en México registra un aumento superior al 7% en marzo
🔶 Gobierno de Colombia avala la eutanasia de hipopótamos para controlar su población
🔶 La Justicia española procesa a la esposa de Pedro Sánchez por cuatro delitos
📌 Toda una colección de canalesa un solo clic.
#Resumen📰 | Lo más destacado destacado e interesante del panorama mundial para el momento:
🔶 Vladímir Putin mantiente en Moscú una reunión con su homólogo indonesio Prabowo Subianto
🔶 Moscú manifiesta su disposición a cooperar con el nuevo Gobierno húngaro
🔶Reabren los colegios electorales en Perú en las elecciones presidenciales
🔶 Keiko Fujimori lidera el recuento presidencial en Perú
🔶 Teherán advierte de que ningún puerto en los golfos estará seguro si se amenaza el territorio de Irán
🔶 Rusia ve en la guerra de Oriente Medio una amenaza a la seguridad alimentaria global
🔶 El papa León XIV responde a las críticas de Trump y reitera su oposición a la guerra en Oriente Medio
🔶 Hizbulá rechaza las consultas directas entre Israel y el Líbano.
🔶 Las gimnastas rítmicas rusas se alzan con la victoria en una etapa de la Copa del Mundo
🛰 Descubre lo que otros callan. Únete ahora.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 EEUU comenzará a bloquear paso a barcos que se dirijan a puertos iraníes
🔶 "No se aprendió nada", considera el canciller de Irán tras bloqueo marítimo por parte de EEUU
🔶Concluye el alto al fuego de Pascua anunciado por Putin
🔶 Inicia el cierre de casillas electorales en Perú
🔶 "Los resultados de las elecciones parlamentarias son claros", afirma Orban
🔶Encuentran fosa con presuntos restos humanos en el rancho mexicano Izaguirre
📌 Toda una colección de canalesa un solo clic.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 Trump advierte sobre un bloqueo total del estrecho de Ormuz por parte de EEUU
🔶 "El diálogo es posible, pero difícil": Díaz-Canel envía un firme mensaje de paz y defensa a EEUU
🔶 Pezeshkián comparte con Putin los resultados de las negociaciones entre EEUU e Irán en Islamabad
🔶 "Igual, pero a mayor escala": Trump compara el bloqueo a Irán con el de Venezuela
🔶 "Es nula la posibilidad de que exista un fraude" en los comicios de Perú, afirma un funcionario electoral
🔶 Casí 2.000 violaciones de la tregua de Pascua cometió Ucrania en solo 16 horas, denuncia Defensa rusa
🛰 Descubre lo que otros callan. Únete ahora.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 "Negociaciones con EEUU continuarán aunque persisten algunas diferencias", dice el Gobierno iraní
🔶 Putin felicita a los rusos por la Pascua
🔶 Nuevo canciller de México se reúne con embajador de EEUU
🔶 A los iraníes les importan los hechos sobre el terreno, no los documentos firmados por EEUU: experto
🔶Ataque con arma blanca en Nueva York deja al menos tres personas heridas
📌 Toda una colección de canalesa un solo clic.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶Inician las negociaciones entre EEUU e Irán en Islamabad, afirma Trump
🔶Comienza el alto al fuego de Pascua anunciado por Putin
🔶 La Fiscalía de Turquía pide condenas de hasta 4.596 años de prisión para Netanyahu y su gabinete
🔶 "Cuba, no estás sola": una gran marcha en apoyo a la isla se realiza en Roma
🔶 Varios heridos, incluido un bebé, en un ataque ucraniano contra la región de Kursk durante la tregua de Pascua
🔶 El Gobierno de Perú despliega más de 100.000 policías y militares para garantizar el orden en las elecciones
🔶 Fuerzas rusas infligen casi 1.200 bajas a Ucrania e interceptan 259 drones en un día de combates
🛰 ¿Quieres saber más? Solo un clic te separa.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 Israel y Líbano entablarán conversaciones en EEUU sobre alto al fuego
🔶 México abre la puerta al 'fracking': "El reto no es geológico, sino financiero, técnico y operativo"
🔶 Colombia responde a Ecuador: aumentará a 100% los aranceles contra sus productos
🔶 "El estrecho de Ormuz se abrirá automáticamente", según Trump
🔶 Israel anuncia nuevos "asentamientos" en Cisjordania en medio de la guerra
🔶 Aplazan la audiencia para el capo mexicano 'Mayo' Zambada en EEUU
📌 Toda una colección de canalesa un solo clic.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 Irán anuncia condiciones para iniciar conversaciones con Estados Unidos
🔶 "No está dentro del radio": España confirma su oposición a la misión de la OTAN en el estrecho de Ormuz
🔶 Cuba reafirma voluntad de consolidar "las históricas y estratégicas relaciones" con Rusia, señala Díaz-Canel
🔶 Vance parte hacia las negociaciones en Islamabad
🔶 Zelenski promete "actuar en consecuencia" en relación con el alto el fuego de Pascua anunciado por Putin
🔶 Rusia libera 2 localidades y registra más de 8.000 bajas militares ucranianas en la última semana
🔶 Momento histórico: Xi Jinping se reúne con la líder de la oposición taiwanesa en Pekín
🔶 Israel ataca zona con periodistas en el sur del Líbano a pesar del alto el fuego en Oriente Medio
🛰 Descubre lo que otros callan. Únete ahora.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 Putin declara alto al fuego temporal con motivo de Pascua, anuncia el Kremlin
🔶 Asamblea Nacional de Venezuela elige a Larry Devoe como nuevo fiscal general
🔶 Canciller cubano agradece a vicecanciller de Rusia por envío de petróleo
🔶 Sheinbaum descarta el uso del "fracking tradicional" para la extracción de gas natural
🔶 Trump exige a Irán que deje de imponer tarifas en el estrecho de Ormuz
📌 Toda una colección de canalesa un solo clic.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 España condena "la inaceptable violencia de Israel" contra el Líbano
🔶 Lavrov confirma la disposición de Rusia a colaborar en la búsqueda de soluciones en torno al conflicto iraní
🔶 Irán publica un mapa oficial de rutas marítimas obligatorias en el estrecho de Ormuz
🔶 Cámara argentina de Diputados sanciona reforma a Ley de Protección de Glaciares
🔶 Rusia y Ucrania realizan el intercambio de cadáveres https://t.me/SputnikMundo/152970
🔶 Israel afirma haber destruido una red subterránea de túneles de Hizbulá
🔶 Las calles se convierten en ríos tras fuertes lluvias en República Dominicana
📌 ¿Has visto a toda nuestra familia?¡Suscríbete!
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶Suman 182 fallecidos por el brutal ataque israelí contra el Líbano
🔶 "Entiendo perfectamente la decepción de Trump", dice jefe de la OTAN
🔶 Washington insiste en que el Líbano no está incluido en el cese al fuego
🔶 Israel lanzó cerca de 100 ataques en contra del Líbano en menos de 10 minutos, reporta la ONU
🔶 México abre la puerta al 'fracking' en busca de reducir su dependencia hacia EEUU
🔶 Exfundador del Cártel Jalisco Nueva Generación se declara culpable en EEUU
🔶 La próxima elección presidencial en Brasil "tendrá como punto álgido la defensa de la democracia": Lula
🔶 Italia busca "evitar que haya una segunda Gaza" en el Líbano, sentencia el canciller
📌 Toda una colección de canalesa un solo clic.
#Resumen📰 | Lo más destacado e interesante del panorama mundial para el momento:
🔶 La Unión Europea busca crear armas nucleares en secreto, revela la inteligencia Rusa
🔶 La tregua entre EEUU e Irán obligará a Israel "a pagar el precio por ella", denuncian medios israelíes
🔶 El T-MEC golpea a los productores del campo en México, reporta un medio
🔶 ¿Qué condiciones plantea Irán para poner fin al conflicto con EEUU?
🔶 EEUU colaborará "estrechamente" con Irán, afirma Trump
🔶 Israel lleva a cabo su mayor ataque en el Líbano desde el inicio de la escalada
🛰 Descubre lo que otros callan. Únete ahora.