Что делать если нужно поставить какую-то 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
Посол России в Брунее-Даруссаламе Михаил Владимирович Баранов выделил прошедший год как значимый период для российской дипломатии, особенно в Азиатско-Тихоокеанском регионе.
Выступая на приеме, посвященном Дню дипломата в посольстве России в Брунее-Даруссаламе в Кампонг-Мангисе, посол подчеркнул стратегический поворот России на Восток, отдавая приоритет укреплению отношений со странами-членами АСЕАН.
«Мы рассматриваем АСЕАН как ключевого партнера в содействии многополярному миру и приветствуем Индонезию в качестве нового члена БРИКС. Мы также рады, что несколько других стран региона присоединились к БРИКС в качестве партнеров, что усилило глобальный охват и инклюзивность платформы», — сказал он.
https://borneobulletin.com.bn/russian-envoy-lauds-growing-asean-bilateral-ties/
#Brunei
On October 17, 2022 certificates were presented to the officers of the Narcotics Control Bureau of #Brunei (BKN), who had completed on-line courses titled “Countering international drug trafficking, illegal trafficking in narcotic drugs and psychotropic substances committed using the Internet”, arranged by the Russian Ministry of Interior.
Charge d’Affaires a.i. of Russia to Brunei Mr.Andrei Mamaev and BKN Acting deputy director Mr.Zainol Adi Ajmain participated in the ceremony.
*
17 октября 2022 г. в Бюро по контролю за оборотом наркотиков Государства Бруней-Даруссалам прошла церемония вручения брунейским полицейским сертификатов об окончании он-лайн курсов МВД России по тематике «Борьба с международным наркотрафиком, незаконным оборотом наркотических средств и психотропных веществ, совершаемых с использованием сети «Интернет».
В мероприятии приняли участие Временный поверенный в делах России в Брунее А.Н. Мамаев и исполняющий обязанности заместителя директора Бюро Заинол Ади Аджмаин.
#Россия#Бруней
On 5 May 2022 Mufti Sheikh Ravil Gainutdin, Chairman of the Religious Board of Muslims of the Russian Federation and the Russia Muftis Council, received H.E. Haini Hashim, Ambassador of Brunei Darussalam to the Russian Federation. They highlighted fruitful cooperation between #Russia and #Brunei, both on bilateral and regional levels, in particular, in religious and cultural spheres.
Mufti Sheikh Ravil Gainutdin awarded the Medal “For Spiritual Unity” to H.E. Haini Hashim.
*
5 мая с.г. Председатель Духовного управления мусульман РФ и Совета муфтиев России Муфтий Шейх Равиль Гайнутдин принял Посла Государства Бруней-Даруссалам в Российской Федерации Хайни Хашима. В ходе беседы было отмечено плодотворное российско-брунейское сотрудничество как на двустороннем, так и на региональном уровне, в том числе в религиозной и культурной сферах.
Также Муфтий Шейх Равиль Гайнутдин наградил Посла Брунея-Даруссалам Хайни Хашима медалью «За духовное единение».
#Россия#Бруней
Warmest wishes to our collegues from the Permanent Mission of #Brunei Darussalam to #ASEAN and all the people of Brunei 🇧🇳 on the occasion of the country's National Day.
#RussiaASEAN#ASEANRussia
The Embassy of #Russia in #Brunei commemorated #VictoryDay. The staff of the Embassy toured a photo exhibition and took part in a tree-planting ceremony, lecture and war poem recitation. The screening of the documentary film “Victory Parade” was also arranged.
*
В Посольстве России в Брунее прошли торжественные мероприятия, приуроченные ко Дню Победы. Коллектив РЗУ принял участие в посадке деревьев, осмотре фотовыставки, чтении лекции и стихов о войне. Также был организован показ документального фильма «Парад Победы».
#ДеньПобеды
Recently Narcotics Control Bureau (#NCB) officers have completed the advanced training course «On counteracting international drug trafficking, illicit trafficking in narcotic drugs and psychotropic substances», organized by the Ministry of Internal Affairs of the Russian Federation.
Chargé d' Affaires a.i. of #Russia to #Brunei Darussalam Mr Andrei Mamaev presented the certificates to the Narcotics Control Bureau officers and thanked them for their active participation.
*
Сотрудники брунейского Бюро по контролю за оборотом наркотиков прошли организованный Министерством внутренних дел Российской Федерации специальный онлайн-курс «Борьба с международным наркотрафиком, незаконным оборотом наркотических средств и психотропных веществ».
Временный поверенный в делах России в Брунее А.Н. Мамаев вручил слушателям курсов сертификаты и поблагодарил их за активное участие.
#Россия#Бруней
On 11 May 2022 Mr. Tamerlan Munchaev, Chargé d’Affaires a.i. of #Russia to #Brunei, received a courtesy call from the newly appointed Ambassador of #Laos H.E. Sengdavanh Vongsay.
*
11 мая с.г. Временный поверенный в делах России в Брунее Т.М. Мунчаев принял с визитом вежливости вновь назначенного Посла Лаоса Сенгдаванх Вонгсай.
#Россия#Бруней#Лаос
🇧🇳🇵🇭 Le sultan de Brunei, Hassanal Bolkiah, est arrivé au 48e sommet de l'Association des nations de l'Asie du Sud-Est (Asean) aux Philippines, en pilotant lui-même son avion, a rapporté l’agence philippine PNA.
#brunei#asean#sommet#philippines
On 25 May 2022 Mrs. Svetlana Munchaeva, Spouse of the Chargé d’Affaires a.i. of #Russia to #Brunei, attended the meeting of Spouses of Heads of Missions and Honorary Members of the #DiplomaticCorps hosted by the Embassy of #Oman.
*
25 мая с.г. супруга Временного поверенного в делах России в Брунее С.В. Мунчаева приняла участие во встрече супруг глав дипмиссий и почетных членов дипкорпуса, организованной Посольством Омана.
On 30 May 2022 the Embassy of #Russia participated in the reception hosted by #MFA of #Brunei Darussalam in conjunction of #HariRayaAidilfitri for the diplomatic corps. Her Royal Highness Princess Hajah Masna, Ambassador-at-Large at the Ministry of Foreign Affairs, and Dato Erywan Pehin Yusof, Minister of Foreign Affairs II, were the Guests of Honour.
*
30 мая с.г. Посольство России приняло участие в организованном МИД Брунея торжественном приеме для дипкорпуса по случаю окончания месяца Рамадан. Главными гостями мероприятия были Посол по особым поручениям принцесса Масна и Второй министр иностранных дел Эриван Юсоф.
#Россия#Бруней
The Ambassador of the Russian Federation🇷🇺 to the State of #Brunei Darussalam🇧🇳, Mikhail Baranov, met with students who are members of the Historical Club at the University of Brunei Darussalam (#UBD). In a warm and friendly atmosphere, the participants discussed various topics related to Russian history, our country's culture, as well as the current state of international relations.
----
Посол Российской Федерации🇷🇺 в Государстве #Бруней-Даруссалам🇧🇳 Михаил Владимирович Баранов встретился со студентами - членами Исторического клуба Университета Бруней-Даруссалам (#UBD). В теплой дружеской атмосфере участники встречи обсуждали различные темы, связанные с историей России, культурой нашей страны, а также текущей ситуации в международных отношениях.
#РоссияБруней
On October 6, 2022, the Embassy of #Russia in #Brunei hosted the photo exhibition devoted to the 350th anniversary of #PeterTheGreat. Members of the diplomatic corps attended the event.
During the reception guests were watching the photo gallery, the brief video about life and reign of Peter the Great, the slide show of Saint Petersburg and performances of the Russian folk arts ensembles.
#PeterTheGreat350
*
6 октября с.г. в Посольстве России в Брунее прошла фотовыставка, посвященная 350-летнему юбилею Петра I. В мероприятии приняли участие члены дипкорпуса.
Гости осмотрели представленные на выставке фотографии. Во время небольшого приема им были продемонстрированы краткий видеоролик о жизни и деятельности российского императора, слайд-шоу с видами Санкт-Петербурга и выступления российских ансамблей народного творчества.
#ПетрВеликий350