Что делать если нужно поставить какую-то 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 9 de agosto se celebra el Día Internacional de los Pueblos Indígenas, proclamado por la Asamblea General de las Naciones Unidas (ONU). En esa fecha se conmemora la primera reunión que celebró el Grupo de Trabajo sobre las múltiples Poblaciones de pueblos originarios de la Subcomisión de Prevención de Discriminaciones y Protección a las Minorías, en 1982.
🎨Polari
#LaNotaCuriosa
Desde hace 13 años se viene celebrando cada 8 de agosto el Día Internacional del Orgasmo Femenino, una celebración que nació en un pueblecito brasileño llamado Esperantina.
En realidad todo se debe a quién entonces era el concejal de ese poblado José Arimateia Dantas Lacerda, quién interesándose en un estudio realizado por la Universidad Federal de Piauí, descubrió que el 28% de las mujeres de esa región eran incapaces de llegar al orgasmo, y el concejal concluyó que estos resultados demostraban una problemática grave de salud pública.
#LaNotaCuriosa
Desde 1970 se celebra el Día Internacional del Orgullo LGBTI+ en conmemoración de los disturbios de Stonewall de 1969.
Fue la primera vez que en EEUU la comunidad se organizó y marcó la génesis del movimiento contemporáneo por los derechos LGBTIQ.
#LaNotaCuriosa
#LaNotaCuriosa🤔 de Tremenda Nota🏳️🌈
Este viernes 13 de agosto se celebrará en el mundo el Día del Zurdo, fecha creada para conmemorar a ese 10% de la población mundial, aproximadamente, cuyo brazo hábil es el izquierdo.
Este día fue establecido por el Club de Zurdos, un 13 de agosto de 1976, en Londres, Inglaterra, para honrar su estilo de vida.
Al día de hoy, el término zurdo es usado comúnmente en el ámbito político para referirse a una persona con una postura de izquierda que busca la igualdad social como la prioridad máxima en su programa político.
Los zurdos no tienen un hemisferio preferido, a diferencia de los diestros. Esto puede generar dificultad a la hora de controlar sus estados de tristeza o rabia, es decir, los convierten en personas sensibles y sinceras.
#TremendaNota
#UnaRevistaMarginal
Desde el año 2004 cada 21 de julio se celebra el día mundial del perro con la intención de concienciar a todos sobre la inmensa cantidad de canes que son abandonados a su suerte en las calles o que esperan aun por una familia en un refugio.
#LaNotaCuriosa
#DíaMundialDelPerro
El Día Internacional de la Mujer Afrodescendiente, también se conoce como Día de la Mujer Afrolatina, Afrocaribeña y de la Diáspora.
La fecha fue elegida para conmemorar el primer congreso en el que se reunieron más de 400 mujeres latinoamericanas y del Caribe, en 1992 en la República Dominicana. En este congreso se trataron temas relacionados con el sexismo, discriminación racial, pobreza, migración y violencia.
#LaNotaCuriosa
#DíaDeLaMujerAfrodescendiente
Día Internacional del beso robado.
De origen desconocido, esta celebración se popularizó en la Gran Bretaña del siglo XIX aunque ahora se sigue a nivel mundial. Un día pensado para demostrar el cariño que tienes hacia tus seres queridos con un beso, siempre con su consentimiento.
#LaNotaCuriosa
#diainternacionaldelbesorobado
Día Internacional de Acción por la Salud de las Mujeres
#LaNotaCuriosa
Este día se celebra con el objetivo de denunciar y hacer frente a enfermedades y padecimientos que sufren las mujeres en todo el mundo, muchas de ellas con un triste final.
El origen de esta celebración tuvo lugar en una asamblea de mujeres llamada *Red Mundial de Mujeres por los Derechos Sexuales y Reproductivos* llevada a cabo en Costa Rica en el año 1987.
#DíaDeLaSaludDeLasMujeres
Cada 22 de julio se celebra el Día Mundial del Cerebro, fecha que pretende concienciar sobre su potencial, sus riesgos y sus enfermedades.
#LaNotaCuriosa
#TN
#RevistaMarginal
#LaNotaCuriosa🤔
El 17 de diciembre de 1999, la Asamblea General de las Naciones Unidas declaró el 12 de agosto como el Día Internacional de la Juventud.
Se trata de una celebración anual que busca promover el papel de la juventud como socia esencial en los procesos de cambio. Así como generar un espacio de conciencia sobre los desafíos y problemas a los que estos se enfrentan.
El tema del Día Internacional de la Juventud 2021 es "Transformar los sistemas alimentarios: Innovación juvenil para la salud de los seres humanos y del planeta". El mismo pone de relieve el éxito de ese esfuerzo mundial, en tiempos de pandemia, que no se logrará sin la participación significativa de los jóvenes.
Tremenda Nota🏳️🌈 sabe que cuando la #JuventudLidera , ¡TODO ES POSIBLE!.
#TremendaNota
#UnaRevistaMarginal
Día de África
#LaNotaCuriosa
Este día fue decretado con el objetivo de visibilizar las necesidades que siguen enfrentando los países de este continente, así como sus avances socioeconómicos, incluyendo su liberación del colonialismo
#DíaDeÁfrica
#África
#AfricaDay