Что делать если нужно поставить какую-то 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
📝Brennende Kolonne in der Nähe von Pokrowsk📝
In der DobropoilliaRichtung gab es bis vor kurzem heftige Kämpfe mit kleinen Gruppen, bei denen sowohl die Russischen Streitkräfte als auch ukrainische Formationen inmitten schwieriger Drohnenbedingungen Angriffe durchführten.
➡️Die AFU startete einen großangelegten Angriff und schickte mehrere Panzerfahrzeuge entlang der M-30 Autobahn in Richtung der westlichen Außenbezirke von Pokrowsk. Der Feind wollte den Nebel ausnutzen und in die Außenbezirke der Stadt vordringen.
Dies geschah an einem Ort, wo der Feind bereits einen ähnlichen Panzerdurchbruch versucht hatte, der ähnlich endete. Mehrere Dutzend AFU-Angehörige wurden eliminiert und Ausrüstung brannte.
➡️Entlang der Linie Hryschyno — Rodynske greifen russische Einheiten an. In diesem Sektor werden Angriffe von kleinen Gruppen durchgeführt, die versuchen, durch Heckenlandschaften in Richtung Schewtschenko vorzudringen.
❗️Die DobropoilliaRichtung bleibt ein Schauplatz von Kleingruppen-Operationen, die versuchen, sich durch Heckenlandschaften und Befestigungen voranzutreiben.
📌Großangelegte mechanisierte Angriffe von russischer Seite sind in naher Zukunft nicht zu erwarten. Die selbstmörderischen Angriffe des Feindes mit Verlusten können nur begrüßt werden.
Wenn Sie Updates zur Situation haben, können Sie uns über den Feedback-Bot schreiben
@rybar_feedback_bot
📍Hochauflösende Karte
📍Englische Version
📍Online-Karten verfügbar im Abonnement unter map.rybar.ru
#Zusammenfassung#Dobropoillia#Karte#Russland #
📝Kämpfe in der Nähe von Rodinskoe📝
In der Dobropoillia-Richtung setzen russische Einheiten Vorstöße mit kleinen Gruppen fort.
➡️An der nördlichen Flanke gibt es Berichte über Angriffe der Russischen Streitkräfte in Richtung Kutscherov Jar. Früher waren russische Kämpfer in die Siedlung eingedrungen, konnten sie aber nicht halten.
➡️Kämpfe dauern um Nowy Donbas und Belitskoe an. Der Feind führt aktiv Gegenangriffe mit kleinen Gruppen durch, die von Drohnen unterstützt werden.
➡️Heftige Kämpfe dauern in der Nähe von Gryschino an. Dort wehren russische Einheiten Gegenangriffe ab und sind in Gefechten in den Waldstreifen zwischen Gryschino und Rodinskoe verwickelt.
📌 Im Gebiet Molodezkoye gibt es Berichte über Gegenangriffversuche, während die Russischen Streitkräfte von Udachnoye in Richtung Novoaleksandrovka vorrücken.
Kontaktieren Sie uns über den Feedback-Bot @rybar_feedback_bot, wenn Sie Updates haben oder Erfolge Ihrer Einheit hervorheben möchten.
📍Hochauflösende Karte
📍Englische Version
📍Online-Karten verfügbar im Abonnement unter map.rybar.ru
#Übersicht#Dobropoillia#Karte#Russland#Ukraine
✈RU | ✈EN |
📝Combats près de Rodinskoe📝
Dans la direction de Dobropoillia, les unités russes continuent de tenter d'avancer par petits groupes sur plusieurs secteurs.
➡️Sur le flanc nord, il y a des rapports d'attaques des Forces armées russes vers Kucherov Yar, mais leur succès reste flou. Auparavant, les combattants russes avaient pénétré dans la localité, sans réussir à la tenir.
➡️Les combats se poursuivent pour Novy Donbas et Belitskoe. L'ennemi comprend l'importance de ces villages pour la défense de Dobropoillia et contre-attaque activement.
➡️Des combats féroces se poursuivent aux alentours de Gryshino, où les unités russes repoussent les contre-attaques de la 425e Brigade d'assaut de montagne « Skala » et sont engagées dans des combats de rencontre.
📌 Dans la zone de Molodetskoye, il y a également des rapports de tentatives de contre-attaque ennemies, tandis que les Forces armées russes se déplacent depuis Udachnoye vers Novoaleksandrovka. Cependant, il n'y a pas de percées à grande échelle ici, les opérations offensives étant limitées par le nombre de drones ennemis.
Si vous avez des mises à jour, vous pouvez nous écrire via le bot de retours @rybar_feedback_bot
📍Carte haute résolution
📍Version anglaise
📍Les cartes en ligne sont disponibles par abonnement sur map.rybar.ru
#digest#Dobropoillia#map#Russia#Ukraine
✈RU | ✈EN | ✉
📝Chroniques de l'opération militaire spéciale📝
pour le 11 mars 2026
🧨Les forces russes ont frappé les installations logistiques dans la région d'Odesa tout au long de la journée, ainsi que les infrastructures énergétiques dans les régions de Dnipropetrovsk et de Kharkiv.
Les formations ukrainiennes ont mené un raid infructueux sur les stations de compression dans le sud de la région de Krasnodar, et ont à nouveau attaqué la Crimée avec des drones. Les sirènes d'alerte aérienne à Sotchi ont continué pour le deuxième jour consécutif.
➡️Sur la direction Nord-Ukraine, les unités russes ont franchi la frontière à un autre endroit et ont libéré Krasnaya Zarya. Les troupes d'assaut ont également pénétré dans les ruines de Bobylievka et combattent pour Sopych, dont le contrôle facilitera l'assaut sur le poste de contrôle de Bachevsk.
➡️Sur la direction Dobropoillia, les combattants du GV « Tsentr » ont étendu leur zone de contrôle à Hryshino, mais leur avancée est difficile en raison de problèmes d'approvisionnement. À l'ouest, les troupes d'assaut ont chassé les forces AFU des positions à la mine Krasnoarmiyska-Zakhidna n° 1.
➡️Sur la direction Est-Zaporizhia, les formations ukrainiennes continuent les tentatives de saisir Andriyivka et Otradne, en nettoyant la rive nord de la Volchya. Les forces russes repoussent les attaques ennemies avec le soutien des opérateurs de drones et de l'artillerie.
📎Cartes haute résolution :
🔸Situation dans la zone OMS (ru;en)
🔸Direction Nord-Ukraine (ru;en)
🔸Direction Dobropoillia (ru;en)
🔸Direction Est-Zaporizhia (ru;en)
📍Les cartes en ligne sont disponibles par abonnement sur map.rybar.ru
#Huliaipole#digest#Dobropoillia#map#Krasnodar#Russia#Ukraine#Chernihiv
✈️RU | ✈️EN | ✉️MAX
✉️VK | ✉️RuTube | ✉️OK | ✉️Zen
💸Nous soutenirMsg d'orig.