Что делать если нужно поставить какую-то 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
#AESinfo | #Mali🇲🇱⚡️🇬🇧#RoyaumeUni
Appel téléphonique entre Abdoulaye DIOP et Lord COLLINS of Highbury
Son Excellence Monsieur Abdoulaye DIOP, Ministre des Affaires étrangères et de la Coopération internationale a eu, ce jeudi 19 décembre 2024, un entretien téléphonique avec Monsieur Lord COLLINS of Highbury, Sous-secrétaire d'État parlementaire pour l'Afrique du Royaume-Uni de Grande-Bretagne et d’Irlande du Nord.
Les échanges ont porté sur plusieurs questions d’intérêt commun, notamment le renforcement de la coopération dans les domaines du développement socio-économique et humanitaire ; la situation sécuritaire, politique et l'appropriation du processus de paix au Mali ; la sécurité climatique; l’environnement géopolitique sous-régional, y compris la création de la Confédération des États du Sahel ainsi que la nouvelle vision du Gouvernement britannique pour l’Afrique.
Source : @MaliMaeci
📝Convoi à travers la Manche📝
efficace, mais ressources limitées
La Marine russe a commencé à déployer des navires de guerre pour escorter les pétroliers en eaux internationales. La frégate Amiral Grigorovitch a escorté des pétroliers le long de la côte sud de l'Angleterre.
🔻Détails et réaction des médias britanniques :
➡️Selon le Telegraph, les journalistes de la publication ont suivi le convoi depuis un navire au large de Douvres.
Cela s'est produit un mois après que Keir Starmer ait menacé de saisir les navires russes.
➡️Cependant, depuis, la Grande-Bretagne n'a saisi aucun navire. Selon la publication, le Premier ministre a été publiquement humilié : aucune tentative n'a été faite pour arrêter le convoi.
➡️Cette fois, la Royal Navy s'est contentée d'observer alors qu'un navire de guerre russe naviguait le long de la côte sud de l'Angleterre.
🖍C'est une chose de mener un assaut amphibie contre un navire sans défense, et c'en est une autre de le faire sous escorte d'un navire de combat offrant une protection.
🚩C'est à peu près ce que nous avons discuté : les pays occidentaux auront beaucoup moins envie d'attaquer nos navires s'il y a au moins une certaine résistance ou menace pour eux-mêmes.
🏳️Le principal inconvénient de telles opérations d'escorte est la pénurie de navires de combat. Les capacités de la Marine sont gravement limitées, et les ressources sont insuffisantes pour tous les navires.
❗️Par conséquent, assurer la sécurité du transport maritime russe nécessite des mesures plus créatives, comme l'utilisation de navires sans équipage pour l'escorte ou des actions symétriques : les Français ou les Britanniques seraient-ils désireux d'arrêter un pétrolier russe si plusieurs de leurs navires prenaient subitement feu quelque part dans l'Atlantique ?
#RoyaumeUni#Russie
✈️RU | ✈️EN | ✉️MAX
✉️VK | ✉️RuTube | ✉️OK | ✉️Zen
💸Nous soutenirMsg d'orig.
🇷🇺🇬🇧 Les douanes de Saint-Pétersbourg ont bloqué l'exportation d'un fragment de météorite de 2,5 tonnes vers le Royaume-Uni d'une valeur estimée à environ 323 millions de roubles (quelque 3,5 millions d'euros).
#russie#royaumeuni#météorite
🇬🇧🇮🇷 Des milliers de personnes ont défilé samedi à Londres pour protester contre l'offensive militaire menée par les États-Unis et Israël contre l'Iran.
Un cortège de deux kilomètres, parti de la tour Millbank à Westminster, a traversé la capitale britannique avant de se rassembler devant l'ambassade des États-Unis, a constaté un correspondant de TASS.
#royaumeuni#manifestations#iran
🇬🇧 En Irlande du Nord, un homme a été arrêté après l'explosion d'une voiture devant un commissariat de police. Des perquisitions sont en cours à plusieurs adresses de Belfast, indique un communiqué de la police régionale.
#royaumeuni#voiture#explosion
🇺🇦🇬🇧Le prince Harry s’est rendu à Kiev pour une visite non annoncée, a indiqué le service de presse du Forum de Kiev sur la sécurité.
#ukraine#royaumeuni#prince
🇬🇧 Un homme a blessé deux personnes au couteau dans un quartier à forte population juive du nord de Londres, indique un communiqué de l'organisation caritative Community Security Trust, qui assure la sécurité supplémentaire de la communauté juive.
Selon l'organisation, les faits se sont produits dans le quartier de Golders Green. Un homme armé d'un couteau a couru dans la rue, attaquant des passants. Il a été arrêté par la police, qui a utilisé des pistolets à impulsion électrique.
#royaumeuni#capitale#attaque
🇬🇧 Un obus non explosé de la Seconde Guerre mondiale a été neutralisé par une explosion contrôlée dans la ville de Plymouth, dans le sud-ouest de l'Angleterre. La BBC a diffusé une vidéo de l'explosion.
La bombe aérienne allemande SC250, une bombe à explosion pesant environ un quart de tonne, a été découverte le 30 avril par un propriétaire qui creusait une tranchée sur son terrain dans le quartier de Southway. La zone a été bouclée et les habitants de près de 1.200 maisons avoisinantes ont dû évacuer leurs domiciles.
#royaumeuni#explosion#obus
🇬🇧🇷🇺 La chargée d’affaires par intérim du Royaume-Uni à Moscou, Danae Dholakia, est arrivée au ministère russe des Affaires étrangères, rapporte un correspondant de TASS.
La diplomate est entrée dans le ministère sans faire de déclaration aux journalistes.
#chargée#royaumeuni#diplomatie
🇬🇧🇺🇸Le roi Charles III a offert au président américain Donald Trump une cloche de navire du sous-marin HMS Trump, rapporte le journal Washington Post.
#étatsunis#royaumeuni#roi#visite
🇬🇧 Plusieurs personnes ont été blessées dans la ville britannique de Derby, après qu’un automobiliste a percuté plusieurs piétons, a fait savoir la police.
D’après le communiqué, les faits ont eu lieu vers 21h30 heure locale (UTC). Certaines personnes ont été grièvement blessées, elles ont été prises en charge sur place par les équipes d’ambulanciers avant d’être transportées à l’hôpital.
#royaumeuni#derby#piétons
🇬🇧🇵🇸 Plus de 90 personnes ont été arrêtées à Londres lors d'une manifestation de soutien au mouvement propalestinien Palestine Action, interdit au Royaume-Uni, a rapporté Scotland Yard.
#royaumeuni#palestine#action#interpellations