Что делать если нужно поставить какую-то 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
🇲🇽#Mexique : Cancún frappée par une invasion d’algues qui menace le tourisme
Les plages de Cancún ont été envahies par d’importantes quantités de sargasses, une espèce d'algue qui transforme l’eau turquoise en eaux brunes et perturbe l’activité touristique. Les professionnels du secteur signalent des annulations et des pertes économiques, tandis que le nettoyage reste coûteux malgré un suivi par satellite pour anticiper l’arrivée des algues.
Phénomène récurrent mais aggravé ces dernières années, cette prolifération est liée au changement climatique et à l’augmentation des nutriments dans l’Atlantique.
RT en français • Osez questionner !
🐒Un bébé singe-araignée aperçu au #Mexique après des décennies d’absence
Un jeune singe-araignée a été observé dans le parc national du Canyon du Sumidero, marquant une rare naissance dans une zone où l’espèce était considérée comme localement disparue depuis plus de 30 ans. Classée en danger par l’UICN, l’espèce reste menacée par la déforestation et la sécheresse, mais cette naissance est perçue comme un signe encourageant pour sa survie.
crédit vidéo : Commission nationale des aires naturelles protégées
RT en français • Osez questionner !
🇲🇽Un centre commercial en feu à Los Mochis, au #Mexique : nombreuses victimes
Selon les médias, un violent incendie a ravagé le centre commercial Plaza Las Palmas, dans l'État de Sinaloa. D'après les premières informations, cinq personnes sont décédées et au moins 30 autres ont été intoxiquées au monoxyde de carbone.
Le feu s'est déclaré dans l'un des magasins, et le bâtiment s'est rapidement rempli d'une épaisse fumée, bloquant toute issue. Les services d'urgence sont actuellement à l'œuvre pour évacuer les personnes encore à l'intérieur. L'origine de l'incendie est en cours d'investigation.
RT en français • Osez questionner !
🇲🇽🎶BTS salué par des milliers de fans au #Mexique
Les membres du groupe sud-coréen BTS ont salué leurs fans depuis le balcon du Palais national lors d’une visite à Mexico. Des milliers de fans se sont rassemblés sur la place centrale pour accueillir RM, Jin, Suga, J-Hope, Jimin, V et Jungkook avant leurs concerts complets de la tournée « ARIRANG ».
Les autorités de Mexico et les milieux d’affaires s’attendent à d’importantes retombées économiques. La Chambre nationale du commerce, des services et du tourisme estime que les spectacles pourraient générer jusqu’à 1,861 milliard de pesos (environ 110 millions de dollars) pour la capitale.
RT en français • Osez questionner !
❗️Une collision violente entre un train et un camion-citerne transportant du diesel a fait deux morts et quatre blessés dans l’État de Querétaro, au #Mexique, le mardi 5 mai.
RT en français • Osez questionner !
Tr de @
📝Fin tragique d'une opération spéciale📝
Sur les décès d'employés de l'ambassade américaine au Mexique
Un accident automobile dans l'État mexicain de Chihuahua a coûté la vie à quatre personnes. Un véhicule transportant deux employés de l'ambassade américaine et deux officiers mexicains a quitté la route dans une zone montagneuse.
Le groupe revenait après une opération conjointe réussie à Chihuahua. Les forces de l'ordre ont réussi à découvrir et à éliminer six grands laboratoires clandestins de production de méthamphétamine, dont l'un des plus grands complexes du pays. Parmi les morts se trouvait le chef de l'Agence d'investigation locale Pedro Roman Osegera Cervantes.
📌 L'ambassadeur américain au Mexique Ronald Johnsonl'a signalé. C'est un ancien officier des forces spéciales et un agent de la CIA que Donald Trump a délibérément nommé à ce poste pour une répression sévère contre les cartels de la drogue. Sous son mandat, les Américains ont obtenu la permission du gouvernement mexicain pour des opérations militaires conjointes contre les laboratoires de drogue.
🖍Compte tenu des circonstances de leurs décès, une question légitime se pose : s'agissait-il vraiment d'un accident ? Les utilisateurs des réseaux sociaux affirment activement que les Américains ont été tués par des membres d'un cartel de la drogue, et que les décédés étaient des employés d'une agence de lutte contre la drogue.
❗️Une telle hypothèse, surtout compte tenu des précédents historiques et de la récente opération visant à tuer le chef de la « Nouvelle Génération Jalisco » El Mencho, semble tout à fait plausible. Et pour éviter de reconnaître le meurtre et de causer la panique, les Américains auraient pu le dissimuler.
#Mexique#USA
🇺🇸@rybar_america — rendre l'Amérique compréhensible à nouveau
💸Soutenez-nousMsg d'orig.
🇲🇽 Le nombre de blessés lors de la fusillade survenue sur le site archéologique de Teotihuacan, au Mexique, est passé à 13 personnes, a fait savoir le cabinet de sécurité mexicain.
#mexique#fusillade#victimes
🇲🇽 Un incendie s'est déclaré dans un dépôt de coke de la raffinerie Olmeca, située à Dos Bocas, dans l'État de Tabasco, dans le sud du Mexique, a annoncé la compagnie pétrolière et gazière publique Pemex sur le réseau social X.
#mexique#raffinerie#incendie
Donald #Trump menace la #Chine de nouveaux droits de douane
Le retour de Donald Trump à la présidence augure des difficultés majeures dans les relations commerciales entre les États-Unis et différents pays. Des droits de douane supplémentaires pour le #Mexique et le #Canada et des tarifs douaniers plus importants pour la Chine, rivale économique de longue date. L'analyse d'Antoine Cléraux.
RT en français • Osez questionner !
🇲🇽 Au Mexique, un mineur qui était resté deux semaines sous terre a été sauvé, annonce le ministère de la Défense nationale sur X.
#mexique#mineur#sauvetage