Что делать если нужно поставить какую-то 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
Cada 4 de mayo, el universo de Star Wars encuentra su propia fecha en el calendario, casi como un guiño cómplice entre fans.
¿El motivo? Un juego de palabras tan simple como brillante:
“Que la Fuerza te acompañe” (May the Force be with you)
y “Que el 4 de mayo te acompañe” (May the Fourth be with you) 🎬
Una coincidencia que terminó convirtiéndose en tradición, donde la Fuerza no solo acompaña… también celebra.
Desde generaciones que crecieron con Luke Skywalker hasta quienes descubrieron la saga en nuevas trilogías, este día es un punto de encuentro para todos los que alguna vez miraron al cielo imaginando otras galaxias ✨
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
El universo de Game of Thrones no se detiene, y la pantalla se incendia una vez más con el nuevo trailer de la tercera entrega de House of the Dragon. Estreno 21 de junio. 😱
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
🕸️ La próxima serie del universo de Spider-Man, Spider-Noir revela a Nicolas Cage en acción en un nuevo y explosivo adelanto.
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
Maravilloso...
Mel Brooks vuelve a dirigir Spaceballs con 99 años. El estreno será en 2027 y regresa todo el elenco original. Incluido el gran Rick Moranis, que retorna a la actuación luego de 20 años.
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
Anthony Starr y Karl Urban trabajan desde hace años pero ganaron un reconocimiento internacional por The Boys, aunque sus primeros pasos fue en la serie Xena a medidados de los 90 donde interpretaron a David y Cupido
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
El 16 de abril de 1988 se estrenó en Japón la película dirigida por Hayao Miyazaki y producida por Studio Ghibli.
La historia siguió a dos hermanas que se mudan al campo y entablan vínculo con criaturas del bosque, entre ellas Totoro, figura central del film.
La obra destacó por su tono contemplativo, su enfoque en la infancia y una animación detallada que contrastó con otras producciones de la época.
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
🫣🎥Les compartimos el tráiler de Colony (título coreano: 군체 - Gunche)
La historia sigue a la profesora Se Jeong (interpretada por Jun Ji-hyun) durante una conferencia de biotecnología que se convierte en una pesadilla cuando se desata un virus zombi mutante. El edificio es sellado, atrapando a sobrevivientes e infectados por igual.
Dirigida por Yeon Sang-ho (el genio detrás de Train to Busan), está siendo considerada como uno de los estrenos más grandes de 2026.
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
Nadie quería darle un papel de comedia a Arnold Schwarzenegger. Así que se juntó con Danny DeVito y el director Ivan Reitman para hacer Gemelos (1988), aceptando no cobrar por adelantado y compartir el 40% de las ganancias. Schwarzenegger ganó más de $40 millones con la película, su mayor ganancia de una sola película.
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
🎬 Anne Hathaway y Ewan McGregor protagonizan el primer trailer de El Final de la Calle Oak, una nueva apuesta de ciencia ficción de J. J. Abrams.
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
Esto es lo que usan los dobles de acción cuando se prenden fuego en las películas.
Se llama fire hire un gel retardante que crea una película protectora sobre la piel
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈
Sabías que ell diseño original de Voldemort se descartó porque lo consideraron demasiado aterrador y potencialmente traumático para los niños ?
Hubiesen dejado el prototipo original.
#entretenimiento
Síguenos para más curiosidades
👉@laneuronacuriosa👈