Что делать если нужно поставить какую-то 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
Dr. Roberto Morales Ojeda
(@DrRobertoMOjeda) en X
En la @AsambleaCuba aprobamos el Código de la Niñez, Adolescencias y Juventudes, una norma que garantiza su desarrollo integral y evidencia la voluntad política de avanzar teniendo como centro a las personas y en especial a las nuevas generaciones. #PoderPopular
https://x.com/DrRobertoMOjeda/status/1946250196565762090
Miguel Díaz-Canel Bermúdez
(@DiazCanelB) en X
Intensa y muy aportadora la primera sesión del actual período de la @AsambleaCuba.
Como dijo un joven diputado: la Asamblea del pueblo tiene que parecerse al pueblo. Yo agregaría que se parece mucho a lo mejor del pueblo.
#PoderPopular
Partido Comunista de Cuba
(@PartidoPCC) en X
Con la presencia de Raúl y @DiazCanelB inicia el V Periodo Ordinario de Sesiones de la @AsambleaCuba que abordará temas de sumo interés para el pueblo y que demandan de un análisis profundo de los diputados para encontrar soluciones a las problemáticas actuales. #PoderPopular
https://x.com/PartidoPCC/status/1945482613570838553
Dr. Roberto Morales Ojeda
(@DrRobertoMOjeda) en X
Tras el debate durante dos días en comisiones sesiona a partir de hoy nuestra Asamblea Nacional del #PoderPopular. Se abordarán temas de alto interés para todos.
https://x.com/DrRobertoMOjeda/status/1945439966147784808
Con la presencia del Primer Secretario del Comité Central del Partido y Presidente de la República Miguel Díaz-Canel Bermúdez y de Esteban Lazo Hernández sesiona la Comisión permanente de trabajo de la Asamblea Nacional Cuba dedicada a los Asuntos Económicos. #PoderPopular
https://www.facebook.com/share/p/1A3U1gFwkm/
Desde el teatro Celia Sánchez Manduley, perteneciente al Comité Provincial del Partido en #Holguín, se desarrolló la Xlll Sesión Ordinaria del Decimoctavo Mandato de la Asamblea Municipal del #PoderPopular, encabezada por Ricardo Suárez Martínez, presidente de este órgano.
Entre los principales temas que se trataron en el espacio se encuentra el control de la Comisión Permanente de la Asamblea Municipal del Poder Popular que atiende los asuntos de la Construcción, Vivienda y Acueducto, sobre el estado de cumplimiento del Acuerdo 8574/2016 del Consejo de Ministros.
Además se analizó el informe de control de la Comisión Permanente que atiende los asuntos Agroalimentarios e Industria acerca del cumplimiento del Programa de la Industria Alimentaria. Entre otros asuntos abordados por los delegados se encuentra el control de la continuidad de estudios como garantía al derecho a la educación.
En la mañana de este jueves, desde el teatro Lucía Íñiguez Landín, perteneciente al Comité Provincial del Partido en #Holguín, se desarrolló la X Sesión Ordinaria del XVlll Mandato de la Asamblea Municipal del #PoderPopular, encabezada por Ricardo Suárez Martínez, presidente de este órgano.
Entre los principales temas que se trataron en el espacio se encuentran: la presentación y aprobación del plan de presupuesto del municipio para el año 2024, la rendición de cuenta del Consejo de la Administración sobre los resultados de la implementación de la Ley de Soberanía Alimentaria y la estrategia de desarrollo municipal 2020 - 2023.
El informe de la comisión de Órganos Locales sobre la evaluación de los resultados del año en el trabajo comunitario pudo reflejar la tramitación de inquietudes para la atención a la población.
La Segunda Sesión Extraordinaria del XVlll Mandato de la Asamblea Municipal del #PoderPopular tuvo lugar en la sede del Partido de #Holguín este miércoles, informa Leydi Cruz, estudiante de Periodismo.
El primer punto tratado fue el análisis y aprobación de la modificación presupuestaria como resultado de la implementación de un plan de acciones integradas para incrementar el superávit del municipio.
También se visionó un material donde el viceministro de Relaciones Exteriores Carlos Fernández de Cossío intercambia con delegados del Poder Popular, sobre el bloqueo económico y financiero impuesto por el Gobierno de los Estados Unidos y sus principales consecuencias.
#Cuba
AMPPHolguin
Gobierno Provincial de Holguín
Dr. Roberto Morales Ojeda
(@DrRobertoMOjeda) en X
Ayer en la Asamblea Nacional del #PoderPopular se abordaron cruciales temas económicos. El apoyo a la implementación de las Proyecciones del Gobierno es una de las prioridades del @PartidoPCC . #UnidosXCuba
https://x.com/DrRobertoMOjeda/status/1945847624684216792
Roberto Morales Ojeda en Facebook
Participamos hoy en las sesiones de las comisiones permanentes de trabajo de la Asamblea Nacional Cuba para seguir cimentando la sociedad que nos hemos propuesto, esa que se construye con todos y para el bien de todos a través del #PoderPopular.
#CubaEstáFirme, unida y trabajando por el porvenir.
https://www.facebook.com/share/p/172Vhk1Zmg/
Comienza el trabajo de las comisiones permanentes de la Asamblea Nacional del Poder Popular, al respecto el miembro del Buró Político, Secretario de Organización del Comité Central del Partido y diputado, Roberto Morales Ojeda expresó:
"Estamos en las sesiones de las comisiones permanentes de trabajo de la Asamblea Nacional Cuba para seguir cimentando la sociedad que nos hemos propuesto, esa que se construye con todos y para el bien de todos a través del #PoderPopular. #CubaEstáFirme, unida y trabajando por el porvenir"
Mediante votación nominal la Asamblea Nacional Cuba reformó el artículo de la Constitución que limitaba a 60 años la edad máxima para ser electo Presidente de la República en un primer mandato.
#PoderPopular#CubaLegisla
https://www.facebook.com/share/p/19qhi5jFTA/