Что делать если нужно поставить какую-то 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
🗣 « Hier, lors d’un entretien téléphonique avec le président Trump, le président Poutine a confirmé notre position. Nous comptons sur la mise en œuvre des accords conclus en Alaska », a déclaré #Lavrov.
RT en français • Osez questionner !
🇷🇺KazanForum : place au dialogue
À l’ouverture du XVIIe forum économique « Russie – monde islamique » à Kazan, Sergueï #Lavrov salue une plateforme de dialogue entre cultures, religions et civilisations, en soulignant des relations « amicales » et un intérêt partagé pour développer un partenariat élargi.
Le chef de la diplomatie russe met en avant une vision commune d’un ordre mondial multipolaire fondé sur le droit international et le respect mutuel. Il insiste sur le rôle du forum pour renforcer les échanges commerciaux, lancer des projets d’investissement, développer des routes logistiques et des coopérations technologiques entre la Russie et les pays du monde islamique.
Crédit photo : Ministère russe des Affaires étrangères
RT en français • Osez questionner !
🇷🇺⚙️🇴🇲Sergueï #Lavrov s’est entretenu par téléphone avec son homologue omanais, Sayyid Badr bin Hamad bin Hamood al-Busaidi
🟩 Les deux ministres des Affaires étrangères ont examiné les enjeux actuels au Moyen-Orient, en mettant l’accent sur la situation dans la région du Golfe.
🟩 Ils ont souligné l’importance de prévenir toute nouvelle escalade de violence et toute atteinte aux infrastructures civiles, tant en Iran que dans les États arabes voisins. Les interlocuteurs ont également insisté sur la nécessité d’éviter une montée artificielle des tensions au Conseil de sécurité de l’ONU et de favoriser un retour rapide au dialogue politique et diplomatique dans le respect du droit international et des intérêts légitimes de tous les pays de la région.
🟩 Sergueï Lavrov a réaffirmé la volonté de la Russie de contribuer à ces efforts, notamment dans le cadre du concept russe de sécurité collective dans le Golfe.
🟩 Les discussions ont également porté sur le développement futur de la coopération russo-omanaise.
Crédit photo : Ministère russe des Affaires étrangères
RT en français • Osez questionner !
🇷🇺📞🇶🇦 Sergueï #Lavrov et le Premier ministre qatari Mohammed ben Abderrahmane Al Thani ont discuté par téléphone de la situation dans le golfe Persique.
Ils ont exprimé une position commune soulignant la nécessité de renoncer aux solutions militaires à la crise et de coordonner les efforts de toutes les parties concernées afin de parvenir à un règlement durable à long terme, incluant des garanties pour les intérêts légitimes de sécurité de tous les pays du golfe Persique ainsi que le respect du principe de la liberté de navigation.
Crédit photo : Ministère russe des Affaires étrangères
RT en français • Osez questionner !
🇷🇺☎️🇺🇸Sergueï #Lavrov s’est entretenu par téléphone avec Marco Rubio, a indiqué le ministère russe des Affaires étrangères.
Les deux ministres ont procédé à un échange de vues sur la situation internationale actuelle et les relations entre la Russie et les États-Unis, tout en évoquant le calendrier des contacts bilatéraux. Il est précisé que la conversation s’est déroulée dans un esprit constructif et professionnel.
Crédit photo : Ministère russe des Affaires étrangères
RT en français • Osez questionner !
🗣 « Hier, lors d’un entretien téléphonique avec le président Trump, le président Poutine a confirmé notre position. Nous comptons sur la mise en œuvre des accords conclus en Alaska », a déclaré #Lavrov.
RT en français • Osez questionner !
🇷🇺 Russia's Foreign Minister Sergey #Lavrov's schedule:
👉 December 5-6 — the 31st @OSCE Ministerial Council in Malta.
👉 The Minister will then head to Qatar where he will participate in a political science conference.
@RusEmbMalta:
📰 Foreign Minister Sergey #Lavrov’s interview with The International Affairs journal, August 19, 2023
👉https://u.to/lgPlHw (English)
👉https://u.to/zwPlHw (русский)
🇷🇺🇧🇫Une nouvelle page dans l’histoire des relations entre la Russie et le Burkina Faso.
En visite à Moscou, le chef de la diplomatie burkinabè, Karamoko Jean-Marie Traoré, a signé avec Sergueï #Lavrov un accord sur les bases des relations bilatérales. Un texte clé qui pose les jalons d’un partenariat solide.
Igor Kourachenko a assisté à la rencontre.
RT en français • Osez questionner !
🇷🇺🇮🇳 Le ministre russe des Affaires étrangères, Sergueï #Lavrov, accueille ce lundi 17 novembre dans la capitale russe son homologue indien.
Les détails de cette rencontre avec notre reporter Igor Kourachenko.
RT en français • Osez questionner !
L'interview donnée par Sergueï #Lavrov à des blogueurs américains
De l’Ukraine à l’expansion de l’OTAN en Asie, en passant par l’économie européenne en crise – Sergueï Lavrov a passé en revue les grands dossiers internationaux dans une interview exclusive à trois blogueurs américains. On en parle tout de suite avec notre reporter Igor Kourachenko.
RT en français • Osez questionner !