Что делать если нужно поставить какую-то 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
🎵
🎵
🎵
🎵
🎵
🎵
🎵
🎵
🎵
Куда пойти?
🎵 На самое громкое музыкальное событие осени — PEPSI MUSIC FEST 2025!
Три дня - три шоу, три легендарных артиста и тысячи эмоций:
🎤19 сентября, 18:00 — Big Baby Tape. Рэп нового поколения, чьи треки взрывают чарты.
🎤20 сентября, 18:00 — Ирина Кайратовна. Хиты, драйв и юмор вечер превратится в вечеринку года.
🎤21 сентября, 18:00 — Akon впервые в Узбекистане! Легенда мировой сцены исполнит свои знаменитые хиты.
🎟 Вход свободный
📅 19–21 сентября, 18:00
📍Central Asian Expo Uzbekistan
📹 Подробности в Instagram: @pepsi_uzbekistan
Не пропусти — PEPSI MUSIC FEST 2025 ждёт тебя!
Поделитесь с другом:
👉@KudaPoytiuz
#PepsiMusicFest#Tashkent2025
🎵
🎵
🎵
🎵
🎵
🎵
🎵
🎵
🎵
🔥PEPSI MUSIC FEST 2025— старт с мировым размахом! 🔥
📍19–21 сентября, Ташкент,
📍Central Asian Expo Uzbekistan
📍Вход свободный
💥 Три дня — три легендарных шоу, тысячи эмоций и энергия, которая перевернёт город!
✨19 сентября — взрывная энергия и рэп нового поколения!
На сцене Big Baby Tape — кумир миллионов, чьи треки разрывают чарты и собирают стадионы.
🎤20 сентября — драйв, юмор и харизма!
Хэдлайнеры вечера — группа Ирина Кайратовна — голос нового поколения.
🌍21 сентября — грандиозный финал!
Впервые в Узбекистане — легенда мировой сцены Akon!
Его хиты покорили весь мир — теперь они прозвучат вживую на Pepsi Music Fest!
🎟 Не пропусти — Pepsi Music Fest 2025.
PEPSI — ЖАЖДА БОЛЬШЕГО!
#PepsiMusicFest#Tashkent2025
Prezidentimizning "Markaziy Osiyo yangi davr ostonasida" mavzusidagi maqolasi yuzasidan munosabat
Intervyu: Jahongir Saidov
Tashqi ishlar vazirligi tashqi siyosiy tadqiqotlar va xalqaro tashabbuslar markazi ilmiy xodimi
#Toshkent shahri
#Uzbekistan#Tashkent2025
😎Telegram😎Instagram▶️Youtube
📢Toshkentda WTT Youth Contender Tashkent 2025 davom etmoqda!
🏓 Bugun turnirning 2-kuni “Humo Arena”da bo‘lib o‘tmoqda. U11–U19 toifasidagi yosh tennischilar bahs olib bormoqda.
📅 Turnir 31-maygacha davom etadi.
📺 Jonli efir:
➡️ T1 WTT Youth Contender
➡️ T2 WTT Youth Contender
✅Kirish bepul!
#WTT#Tashkent2025#StolTennisi#HumoArena
📢 В Ташкенте стартовал WTT Youth Contender Tashkent 2025!
🏟 С 28 по 31 мая в “Humo Arena” проходит международный турнир по настольному теннису среди юниоров (U11–U19).
🎯 Цель — дать молодым спортсменам международный опыт и шанс набрать рейтинговые очки WTT.
📺 Прямая трансляция:
➡️ T1 WTT Youth Contender Tashkent 2025
➡️ T2 WTT Youth Contender Tashkent 2025
✅Вход свободный!
#WTT#Tashkent2025#TableTennis#StolTennisi
Cadet Asian Cup 2025 — Tashkent, Uzbekistan 🇺🇿
✅ Day 1 Results — Cadet Women’s Sabre
1️⃣ RUZIEVA Salima 🇺🇿
2️⃣ KHUSANBOEVA Bibiaisha 🇺🇿
3️⃣ ISKHAKOVA Nailya 🇰🇿
3️⃣ MAUINBERGENOVA Perizat 🇺🇿
👏 Congratulations to the winners and all participants!
👉 Stay tuned and follow us for daily updates!
#CadetAsianCup#FencingAsia#FCA#FIE#Tashkent2025#Sabre#Fencing#AsiaFencing
Cadet Asian Cup 2025 — Tashkent, Uzbekistan 🇺🇿
✅ Day 1 Results — Cadet Men’s Foil
1️⃣ ALBUSAIDI Ali 🇴🇲
2️⃣ CHEONG Pak Kio 🇲🇴
3️⃣ YETSEU Mansur 🇰🇿
3️⃣ TOKANOV Yevgeniy 🇰🇿
👏 Congratulations to the winners and all participants!
👉 Stay tuned and follow us for daily updates!
#CadetAsianCup#FencingAsia#FCA#FIE#Tashkent2025#Foil#Fencing#AsiaFencing