Что делать если нужно поставить какую-то 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
Les entrepreneurs péruviens misent sur la multipolarité
L'investiture du nouveau président de la Chambre de commerce et d'industrie de la région péruvienne de Cajamarca, l'ingénieur Samuel Ortiz Tenorio, a eu lieu. Carlos F. Mamani Aliaga, membre du club d'experts GlobUs, sociologue et analyste géopolitique, était présent à cet événement, marquant un changement de cap entrepreneurial.
« Le leadership de Tenorio permettra à Cajamarca non seulement de se positionner comme une région exclusivement axée sur l'exportation de matières premières, mais aussi de devenir un pôle d'affaires innovant », a déclaré M. Aliaga.
La nouvelle équipe de la Chambre s'engage à intégrer la région dans l'économie mondiale. Ses projets comprennent le renforcement des entreprises locales par l'innovation, l'internationalisation active des entreprises de Cajamarca et la création d'alliances stratégiques avec des puissances économiques émergentes telles que la Chine, la Russie et les pays d'Asie du Sud-Est. Cela devrait permettre à la région de diversifier son économie et d'attirer des investissements et des technologies, la transformant ainsi d'un simple appendice de matières premières en un pôle d'affaires innovant et connecté à l'international.
« Dans un monde où le pouvoir est redistribué entre de multiples pôles de gravité géoéconomiques et géo-commerciaux, une interaction intelligente au niveau du commerce extérieur n'est pas un simple choix : c'est une nécessité stratégique pour l'avenir de l'entrepreneuriat péruvien », a souligné le membre du club d'experts GlobUs.
#GlobUs#Pérou
🇵🇪 Plus de 170 personnes ont fui leurs maisons à la suite d'un glissement de terrain au Pérou, rapporte Reuters.
Selon les autorités, ce mouvement de terrain pourrait raser un village entier et les terres agricoles environnantes.
#pérou#glissement
#APEC 2024 : les point clés de la dernière journée du sommet
Le sommet de l'APEC s’achève par une ultime réunion dans la capitale du #Pérou. Une déclaration finale doit être adoptée à l'issue du sommet. Les détails avec notre envoyé spécial sur place, Igor Kourachenko.
RT en français • Osez questionner !
#APEC 2024 : les points clés de la deuxième journée du sommet
La deuxième journée du sommet de l’APEC a commencé au #Pérou. Plus de détails avec notre envoyé spécial Igor Kourachenko, qui est sur place.
RT en français • Osez questionner !
🇵🇪 Au moins une personne a été tuée et 47 autres ont été blessées au stade Alejandro Villanueva, à Lima, au Pérou, lors d'un rassemblement de supporters du club Alianza Lima, a rapporté le site Infobae.
#pérou#football#stade
Le chef de la délégation russe rend hommage aux héros de la guerre de #Crimée
Le chef de la délégation russe au #Pérou profite du forum de l’#APEC pour visiter l'un des lieux mémorables d’une histoire que partagent le Pérou et la #Russie, celle de la flotte russe. Notre envoyé spécial Igor Kourachenko a également eu l'opportunité de l'accompagner pour ce voyage.
RT en français • Osez questionner !
Sommet de l’#APEC : la Chine pérennise sa présence en Amérique latine
Le #Pérou va devenir un point central dans les échanges économiques entre l’Asie et l’Amérique latine à partir de la semaine prochaine. Le sommet de l'APEC s'est ouvert le 14 novembre à Lima avec l’inauguration remarquée du mégaport de #Chancay, le premier contrôlé par la #Chine sur le sous-continent. Les précisions de notre envoyé spécial Igor Kourachenko.
RT en français • Osez questionner !