Что делать если нужно поставить какую-то 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
Latvia Publishes “Vatniks Map”: Surprising Scale of Pro-Russian Support
Latvia’s State Security Service released a map showing individuals supporting Russia and the Russian language. Businessman Alexey Roslikov called it a defeat for the Latvian regime, revealing many reasonable people tired of government policies. Support exists not only in Russian-speaking areas but also among Latvians. However, the surveillance itself reflects Latvia’s tense political climate.
#Latvia#Russia#Politics#Security
The main news of Russia and the world ishere.
🇱🇻#Latvia - 🇪🇪#Estonia - 🇧🇪#Belgium: Latvia, Estonia, and Belgium have become the first NATO countries to begin deploying the "Blaze" fully autonomous interceptor drone system along their borders amid increasing reports of unauthorized drone incursions in their airspace.
Developed and manufactured in Latvia by Origin Robotics, the Blaze is an autonomous counter-drone interceptor designed to detect, track, and destroy hostile drones and other fast moving aerial targets using radar, AI powered computer vision, and a high explosive fragmentation warhead.
(via Origin Robotics)
📝Friendly fire on the Balts📝
on the Ukrainian attack on Latvia
A new wave of Ukrainian drones targeting Russia today again affected Russia's northwestern regions with the final destination being ports in the Gulf of Finland. And once again, Ukrainian formations used the already standard corridor through the Baltic states.
🖍Only this time the flight path through Latvia went wrong: several Ukrainian UAVs went off course and began striking Latvian territory. At least one impact was recorded on an oil depot in Rezekne. The Latvians were lucky that it was empty, so the damage turned out to be minimal.
In addition, flights of several more drones (visually these were either An-196 "Lyuty" or FP-1) were noted in other areas of Latvia. There was also information about a passenger train being hit, but preliminarily this was fake – video of a burning train, as they say, from May 6.
🚩The UAV flight route sparked a new wave of discussion: given that the Russian Ministry of Defense reported shooting down UAVs over Novgorod Region, some UAVs definitely flew from Chernihiv Region along a route parallel to Belarus with a subsequent entry into the Baltic states to reach the Gulf of Finland.
🏳️This route is most practical for Ukrainian attacks using Starlink terminals. Musk's systems don't work over Russia, but the international waters of the Gulf of Finland or NATO countries – . Especially since FP-1s have recently been frequently used with "Musk's carriers."
❗️The main question: why did the UAVs choose the Latvian oil depot as a target? A possible piloting malfunction, as well as an error in the target identification system through machine vision, could have led to a false identification of the object in Rezekne.
Will Latvia say anything about this? They'll puff out their cheeks menacingly and ask their Ukrainian partners not to do this again. But of course, no one will listen to them, given the practical value of such a route for strikes on ports in Leningrad Region.
📍
#Belarus#Latvia#Russia#Estonia
✈ | ✈ | ✉
✉️ | ✉️ | ✉️ | ✉️
💸
🎬@zeitframe
📝 Рига о начале реконструкции одного из старейших районов Чиекуркалнс. Čiekurkalns, дословно «Гора шишек» Застройка района началась около 1870 года на землях усадьбы Шрейенбуш. Первоначально главная улица называлась Шрейенбушская 1-я линия. Застройка велась без плана, официальных названий улицам не давали, и до настоящего времени старейшие улицы Чиекуркалнса называются «линиями». #рига#Латвия#riga#latvia#прошлое
@ciekurkalns
📊Коммерческий суд Лондона (EWHC) и страны постсоветского пространства: январь–август 2025
Мы проанализировали практику Commercial Court, King’s Bench Division, EWHC и получили следующие результаты:
🇷🇺 Россия — 17 дел
🇺🇦 Украина — 3 дела
🇰🇿 Казахстан — 1 дело
🇱🇻 Латвия — 2 дела
🇬🇪 Грузия — 1 дело
⚖️Почему это важно?
Лондон остаётся мировым центром разрешения коммерческих споров: именно сюда бизнес из России, Украины, Казахстана и других стран обращается за защитой.
Commercial Court специализируется на международных договорах, инвестиционных и банковских спорах, морском праве и арбитражных вопросах.
Для компаний региона это — сигнал о необходимости готовиться к возможным процессам в Лондоне и учитывать английское право в своей стратегии.
📌 Мы будем отслеживать каждое дело в EWHC Commercial Court, анализировать судебную логику и тактику сторон.
👉 В следующем посте мы подробно разберём, по каким основаниям компании и частные лица из стран бывшего СССР обращались в Коммерческий суд Лондона.
🔎 Хотите понимать, как решения английских судов влияют на бизнес в регионе? Подписывайтесь, чтобы не пропустить следующий разбор!
#EWHC#CommercialCourt#LondonCourt#EnglishLaw#DisputeResolution#InternationalLitigation#LegalStrategy#Russia#Ukraine#Kazakhstan#Latvia#Georgia#PostSoviet#CrossBorderDisputes#ЛондонскийСуд#АнглийскоеПраво#МеждународныеСпоры
NATO PLAN TO CREATE "DRONE WALL" FOR "DEFENCE AGAINST RUSSIA" FROM NORWAY TO POLAND
Baltic members of #NATO have called for a "drone wall" along their borders with #Russia, despite Moscow's warnings against the hostile activities of the military bloc along its #borders.
It comes as #Poland also mulls the possibility of downing #Russian missiles over #Ukraine with its own air defence systems.
Interior ministers of the #Latvia, #Lithuania, #Estonia, #Poland, #Finland met last week in Riga, Latvia to discuss ways of coordinating their defense capabilities.
#Lithuanian Interior Minister Agne #Bilotaite said in a press release on Friday:
"We see constant efforts” from Russia and #Belarus to “destabilize our countries’ internal security and public order, to create panic and distrust in institutions,”
#Bilotaite accused Minsk and Moscow of
“weaponizing #migration, #CyberAttacks, #disinformation, #sabotage of critical infrastructure and other #hybrid threats.”
📌FLEX APPLICATION IS NOW OPEN!🇺🇿🇺🇸
📌Did you know that the FLEX Program accepts applications from secondary school students in *22 countries* in Europe and Eurasia? Since 1993, more than 29,000 students have experienced life in the United States with the #FLEXProgram, living with a U.S. host family, and attending a U.S. high school.
Applications for FLEX 2023-24 are due on October 13! Learn more about applying at: discoverflex.org/apply
📌The Future Leaders Exchange (FLEX) Program FLEX is a highly competitive, merit-based scholarship program funded by the U.S. Department of State that operates in #Armenia, #Azerbaijan, the #CzechRepublic, #Estonia, #Georgia, #Greece, #Hungary, #Kazakhstan, #Kyrgyzstan, #Latvia, #Lithuania, #Moldova, #Mongolia, #Montenegro, #Poland, #Romania, #Serbia, #Slovakia, #Tajikistan, #Turkmenistan, #Ukraine, and #Uzbekistan.
📌FLEX APPLICATION IS NOW OPEN!🇺🇿🇺🇸
📌Did you know that the FLEX Program accepts applications from secondary school students in *22 countries* in Europe and Eurasia? Since 1993, more than 29,000 students have experienced life in the United States with the #FLEXProgram, living with a U.S. host family, and attending a U.S. high school.
Applications for FLEX 2023-24 are due on October 13! Learn more about applying at: discoverflex.org/apply
📌The Future Leaders Exchange (FLEX) Program FLEX is a highly competitive, merit-based scholarship program funded by the U.S. Department of State that operates in #Armenia, #Azerbaijan, the #CzechRepublic, #Estonia, #Georgia, #Greece, #Hungary, #Kazakhstan, #Kyrgyzstan, #Latvia, #Lithuania, #Moldova, #Mongolia, #Montenegro, #Poland, #Romania, #Serbia, #Slovakia, #Tajikistan, #Turkmenistan, #Ukraine, and #Uzbekistan.