Что делать если нужно поставить какую-то 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
🇯🇵#Japon : un employé de zoo soupçonné d’avoir brûlé le corps de sa femme
Selon les médias locaux, un homme d’une trentaine d’années est soumis à un interrogatoire au Japon. Il a reconnu avoir tué et brûlé le corps de sa femme, portée disparue, dans l’incinérateur du zoo d’Asahiyama.
L’employé du zoo aurait utilisé pendant plusieurs heures l'incinérateur du zoo, destiné aux déchets et aux carcasses animales. Le corps n’a pas encore été retrouvé. L’enquête est en cours et l’établissement, actuellement fermé, a reporté sa réouverture, tout en affirmant coopérer pleinement avec la police.
RT en français • Osez questionner !
🇯🇵🌸#Japon : mer de fleurs bleues
La saison de floraison des némophiles bleues a débuté au Japon et se poursuivra jusqu’à la mi-mai, offrant des paysages spectaculaires.
RT en français • Osez questionner !
🇯🇵#Japon : le spectaculaire festival Fuji Shibazakura (phlox mousse) attire de nombreux visiteurs au pied du mont Fuji.
RT en français • Osez questionner !
🇯🇵#Japon : un employé de zoo soupçonné d’avoir brûlé le corps de sa femme
Selon les médias locaux, un homme d’une trentaine d’années est soumis à un interrogatoire au Japon. Il a reconnu avoir tué et brûlé le corps de sa femme, portée disparue, dans l’incinérateur du zoo d’Asahiyama.
L’employé du zoo aurait utilisé pendant plusieurs heures l'incinérateur du zoo, destiné aux déchets et aux carcasses animales. Le corps n’a pas encore été retrouvé. L’enquête est en cours et l’établissement, actuellement fermé, a reporté sa réouverture, tout en affirmant coopérer pleinement avec la police.
RT en français • Osez questionner !
#AESinfo | #Burkina🇧🇫🤝🏾🇯🇵#Japon
Le Japon renforce son soutien au Burkina Faso : plus de 2 milliards de francs CFA pour l'aide alimentaire
Le Japon poursuit son engagement en faveur du Burkina Faso en octroyant une aide alimentaire supplémentaire de plus de 2 milliards de francs CFA. Ce soutien financier, qui s'inscrit dans le cadre d'une coopération bilatérale solide, vise à atténuer les effets de la crise alimentaire et à renforcer la résilience des populations les plus vulnérables. Cette initiative vient appuyer les efforts du gouvernement burkinabè pour assurer la sécurité alimentaire du pays.
Source : MAECR-BE
🇯🇵 Au Japon, un homme armé d’un marteau et d’une bombe lacrymogène a attaqué des passants et la police arrivée sur place, avant de s'enfermer dans son domicile, rapporte la chaîne TBS.
L'incident s'est produit dans la ville de Fusa, située dans l'agglomération de Tokyo. Le bilan fait état de sept blessés, dont un civil et six agents des forces de l'ordre.
#japon#attaque#victimes
🇯🇵🌨 Le bilan des chutes de neige au Japon s'alourdit à 38 morts, selon les statistiques de l'Agence japonaise des sapeurs-pompiers.
413 personnes ont été blessées, dont 142 grièvement.
#japon#neige#victimes
🇯🇵🌨 Au Japon, 35 personnes sont décédées en raison de fortes chutes de neige, fait savoir TBS, qui cite les autorités locales.
Parmi les victimes figurent des personnes âgées mortes du surmenage et celles qui étaient tombées en nettoyant les toits.
#japon#neige#victimes
🇯🇵 Un accident de la route impliquant plusieurs véhicules, dont un minibus transportant des écoliers, s'est produit dans la préfecture japonaise de Fukushima, a signalé la chaîne NHK.
D’après les informations de la police, l'accident a eu lieu près de la localité d'Inawashiro. En conséquence, au moins une personne est décédée et 26 autres ont été blessées, dont certaines gravement.
#japon#accident#bilan
🇯🇵🇦🇺 Le Japon et l’Australie continueront d’approfondir leurs relations de manière exhaustive, notamment dans les domaines de la défense, de la cybersécurité et de la sécurité économique, a déclaré la chef du gouvernement japonais Sanae Takaichi, à l’issue des négociations qui se sont tenues à Canberra avec le premier ministre Anthony Albanese.
Nous avons signé une déclaration conjointe sur la coopération en matière de sécurité économique qui servira de base à notre partenariat stratégique,
a-t-elle souligné lors d’une conférence de presse commune avec M. Albanese.
#japon#australie#coopération
🇯🇵 Le premier vol d'essai d'une voiture volante a eu lieu à Tokyo, indique la société de développement SkyDrive. L'appareil a parcouru une distance d'environ 150 mètres au-dessus de la baie de Tokyo et est resté en l'air pendant trois minutes et demie.
#japon#vol#voiture