Что делать если нужно поставить какую-то 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
🇷🇺 On National #UnityDay, President of Russia Vladimir Putinlaid flowers at the monument to Kuzma Minin and Dmitry Pozharsky.
The ceremony was attended by representatives of Russia's religious denominations, as well as delegates from the country's civic organisations and youth movements.
🇷🇺 On October 31, the Club of the Russian Embassy in Cambodia hosted a concert dedicated to the #UnityDay.
Students and teachers of the Embassy School told the audience the history of the holiday and the special meaning it has acquired these days, paying attention to the richness and diversity of the cultures of the peoples living in our country. H.E. Mr Anatoly Borovik, Russian Ambassador to Cambodia, and his Spouse, the diplomatic staff of the mission and members of their families, as well as compatriots residing in the Kingdom attended the event.
#UnityDay2025
🇷🇺Il 4 novembre in Russia si celebra la Giornata dell’Unità Nazionale.
Questa ricorrenza ci rammenta la gloriosa impresa compiuta dai nostri antenati, i quali, trovatisi di fronte a una minaccia esterna che metteva a rischio l’esistenza di uno Stato russo indipendente, si unirono per respingere l’invasore straniero e per poter determinare autonomamente le sorti e il percorso di sviluppo sovrano e sicuro della Russia.
Si trattò veramente di una milizia popolare. A comporla c’erano infatti individui diversi per ceto sociale, confessione religiosa e convinzioni politiche; vi erano contadini, membri della popolazione cittadina, mercanti e cosacchi che adempierono tutti al loro dovere civico dando prova di grande forza d’animo e spirito patriottico.
La Giornata dell’Unità Nazionale rappresenta un’ulteriore occasione per ricordarci del fatto che ciò che unisce noi russi, indipendentemente da dove ci troviamo, è la forza di un popolo multietnico e multireligioso eppure fortemente coeso, assieme al suo spirito patriottico e al suo coraggio, alla sua generosità d’animo, compassione, bontà umana e alla sua aspirazione alla giustizia.
Questa Festa è rappresentativa altresì dello spirito di unione e coesione mostrato dai popoli che abitano la Russia nel trovarsi dinanzi alla crescente pressione esercitata dall’“Occidente collettivo” e a minacce e sfide sempre nuove; una coesione che li spinge a ergersi in difesa degli interessi della loro Patria, nonché della giustizia, della verità e degli ideali legati alla pace e alla cooperazione.
Oggi celebriamo la Giornata dell’Unità Nazionale assieme ai cittadini della Repubblica Popolare di Donetsk, della Repubblica Popolare di Lugansk e delle regioni di Zaporozhye e di Kherson, ovvero di quei territori storicamente russi che, seguendo l’esempio della Crimea, entrata a far parte della Russia nel 2014, in occasione dei referendum popolari tenutisi nel 2022 si sono espresse a favore di un ricongiungimento ai popoli della Russia nell’ambito dell’adesione al nostro Stato comune. Tale scelta, così come, in generale, la possibilità per il nostro Paese di esistere e di perseguire in sicurezza il proprio sviluppo in un’ottica di lungo periodo, deve essere difesa “armi alla mano” nell’ambito dell’Operazione Militare Speciale, i cui obiettivi, sistematicamente conseguiti, verranno infine pienamente raggiunti.
Quando siamo uniti, siamo invincibili. Così è stato nel corso della storia, e così sarà sempre.
#UnityDay
#UnityDay2025
@RusEmbMalta:
🇷🇺 On 1 November 2025, the Russian Embassy in Malta hosted a festive reception marking Russia’s National Unity Day. Among the guests were compatriots, public figures, representatives of Maltese business, and the local creative community.
🎙️ After the national anthem, Ambassador Andrey Lopukhov addressed the audience, highlighting the Day as a symbol of unity, mutual support, and shared responsibility for the Motherland. He also praised the contribution of Russian compatriots to strengthening cultural ties and promoting Russian culture in Malta.
🎵 The evening featured a piano concert by the Serbian duo Prof. M.Vujović and V.Basarab, who performed works by Rachmaninov and Sviridov.
📸 Guests enjoyed photo exhibitions “Winter Russia” and “Winter Tale”, showcasing the beauty of Russian nature.
🍲 Traditional Russian dishes and the old-fashioned honey drink sbiten, prepared to a classic recipe, were served.
✨ The evening was marked by a warm and friendly atmosphere.
#UnityDay#UnityDay2025
#RussianCulture
🇷🇺 Today #Russia and its many peoples celebrate national #UnityDay!
It symbolizes the unity of our multiethnic nation, celebrates our true diversity, enhanced through unity and honours the unerring ultimate devotion to the Motherland.
❗️ Happy #UnityDay!
#UnityDay2025#TogetherForever
🇷🇺 Today #Russia and its many peoples celebrate national #UnityDay!
It symbolizes the unity of our multiethnic nation, celebrates our true diversity, enhanced through unity and honours the unerring ultimate devotion to the Motherland.
❗️ Happy #UnityDay!
#UnityDay2025#TogetherForever
🇷🇺 Today #Russia and its many peoples celebrate national #UnityDay!
It symbolizes the unity of our multiethnic nation, celebrates our true diversity, enhanced through unity and honours the unerring ultimate devotion to the Motherland.
❗️ Happy #UnityDay!
#UnityDay2025#TogetherForever
🇷🇺 Today #Russia and its people celebrate national #UnityDay!
The day symbolizes the unity of our multiethnic peoples, celebrates our diversity in unity and our unerring devotion to the Motherland.
❗️ Happy #UnityDay!
#UnityDay2024#TogetherForever
🇷🇺 Today #Russia and its people celebrate national #UnityDay!
The day symbolizes the unity of our multiethnic peoples, celebrates our diversity in unity and our unerring devotion to the Motherland.
❗️ Happy #UnityDay!
#UnityDay2024#TogetherForever
🇷🇺 Today #Russia and its people celebrate national #UnityDay!
The day symbolizes the unity of our multiethnic peoples, celebrates our diversity in unity and our unerring devotion to the Motherland.
❗️ Happy #UnityDay!
#UnityDay2024#TogetherForever
🇷🇺 Today #Russia and its many peoples celebrate national #UnityDay!
It symbolizes the unity of our multiethnic nation, celebrates our true diversity, enhanced through unity and honours the unerring ultimate devotion to the Motherland.
❗️ Happy #UnityDay!
#UnityDay2025#TogetherForever