Что делать если нужно поставить какую-то 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
En saludo al #PrimeroDeMayo se inaugurarán una serie de obras de beneficio e impacto social en el municipio de #Holguín.
Yunior Torres Almaguer, intendente del territorio holguinero, explicó que se ha venido trabajando en un grupo de 20 en saludo al 26 de julio, pero una parte de este se inaugurará en homenaje al Día de los Trabajadores.
Se evalúan viviendas, cuatro obras en el sector de la salud que responden a ocho consultorios médicos de la familia, dos salas del hospital Clínico Quirúrgico Lucía Íñiguez, y otra en el Lenin.
También se incluye la reanimación de dos plazas culturales, un establecimiento para los servicios técnicos personales, dos instituciones del deporte y tres parques en el consejo popular de Vista Alegre.
Según agregó Torres Almaguer, una de las obras de mayor impacto será el Centro de Atención y Reinserción Social.
Se maneja como fecha de presentación de las mismas el día 30 del presente mes.
✍️ Carlos Alberto García
#VideosCimarronas
Luego de que contamos en "imágenes fijas" lo que estuvimos haciendo el primero de mayo, aquí les entregamos nuestro "primer audiovisual" dejando testimonio de nuestro compromiso en tono de trabajo y de clave.
El #PRIMERODEMAYO representa la lucha de clases, la lucha de derechos ante un sistema que deshumaniza: el capitalismo.
¿Y en Cuba? Hay mucho por hacer para completar la justicia y también muchos sueños hechos realidad, que entre todxs hemos conquistado.
Quienes creamos las riquezas y «hacemos andar la rueda de la historia», aunque tengamos que «desafiar poderosas fuerzas» dentro y fuera del país.
(Re)actívate en tu centro laboral, casa, barrio y con el mundo.
¡Hazlo común!
por el #PRIMERODEMAYO
💙TENEMOS UN MUNDO QUE GANAR💙
Trabajadores destacados de diferentes sectores y dirigentes sindicales holguineros fueron reconocidos por sus méritos laborales extraordinarios, aportes importantes a la economía, y su correcta y sostenida actitud ante el #Trabajo.
El acto de condecoraciones, concebido dentro del programa de actividades por el #PrimeroDeMayo, se celebró este lunes en la Plaza de la Revolución Calixto García Íñiguez de #Holguín, y contó con la presencia de Joel Queipo Ruiz, miembro del Comité Central y primer secretario del Partido en la provincia; el General de División Eugenio Ravilero Aguilera, jefe del Ejército Oriental, e Idalmis Serrano Gómez, secretaria general en el territorio de la Central de Trabajadores de #Cuba (#CTC), entre otros dirigentes del Partido, el Gobierno, las organizaciones de masas, la Unión de Jóvenes Comunistas, las Fuerzas Armadas, y la Asociación de Combatientes de la Revolución Cubana.
El orden del desfile por el #PrimeroDeMayo para este 2024 en #Holguín se ha concebido nuevamente por bloques, según información brindada por Tamara Ávila Leyva, secretaria del Comité Municipal de la Central de #TrabajadoresDeCuba en el territorio: 👇👇👇
1. Presidencia
2. Combatientes
3. Jóvenes
4. Construcción
5. Energía y minas
6. Cultura
7. Comercio, gastronomía y servicios
8. Transporte y puerto
9. Salud
10. Hotelería y turismo
11. Azucarero
12. Agropecuario, forestal y tabacalero
13. Industria alimentaria
14. Industria
15. Educación, ciencia y deporte
16. Comunicaciones, informática y electrónica
17. Administración pública
18. Civiles de la defensa
La máxima dirección del país y la #CTC pronostica que este desfile será histórico y estremezcla al mundo con la unidad y el compromiso de todos los cubanos, guiados por el lema: "Por #Cuba#JuntosCreamos".
✍️ Jessica Linares Cardeli, estudiante de Periodismo
AMPPHolguin
Gobierno Provincial de Holguín
El #PRIMERODEMAYO representa la lucha de clases, la lucha de derechos ante un sistema que deshumaniza: el capitalismo.
¿Y en Cuba? Hay mucho por hacer para completar la justicia y también muchos sueños hechos realidad, que entre todxs hemos conquistado.
¡Tenemos un mundo que ganar!
Quienes creamos las riquezas y «hacemos andar la rueda de la historia», aunque tengamos que «desafiar poderosas fuerzas» dentro y fuera del país.
(Re)actívate en tu centro laboral, casa, barrio y con el mundo.
¡Hazlo común!
Intervención comunitaria en el Cerro: pintada y recogida de escombros por el #PRIMERODEMAYO
💙TENEMOS UN MUNDO QUE GANAR💙
#Cimarronas#TenemosUnMundoQueGanar#Feminismos#FeminismoSocialista#MartiresDeChicago
Proyecto Nuestra América Bufa Subversiva Revista Muchacha Revista Mujeres Cenesex La Tizza Tángana en el Trillo HorizontesBlog