Что делать если нужно поставить какую-то 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
Heyyy amici! 🌟 Un breve pit stop dalle corse social per prendere fiato e prepararmi per un Super 2024.🚀 Ma tranquilli, non vi lascio senza il vostro #wallpaper quotidiano! 😎 Fatemi sapere se vi e piaciuto con la solita reaction. #NewBeginnings"
Команда VEON AdTech поздравляет всех с весенним праздником Навруз!🎉
Навруз — это не просто праздник весны, но и символ обновления, вдохновения и новых возможностей. Мы знаем, что каждый новый день — это шанс создать что-то уникальное, будь то инновационная рекламная кампания или технологическое решение, которое меняет правила игры.
В VEON AdTech мы каждый день создаем цифровые решения, которые меняют реальность, объединяя людей и технологии. Пусть эта весна принесет вам смелые решения, прорывные идеи и амбициозные проекты!
Время новых начинаний — сейчас. С праздником!🌸
#VEONAdTech#IT#NewBeginnings#Navruz2025
🇺🇿 Post 46 — Yangi Boshlanishlar 🌍✈️
Bir oy ham juda tez o‘tib ketdi. Endi yana ishga qaytyapman. Vatanimni tark etish og‘riqli, albatta, lekin kelajak uchun yaxshi imkoniyatlarga intilish — bu ham hayotning bir qismi. Har qanday qiyinchilik orqasida yangi imkoniyatlar yashirin.
Yana BAAga qaytaman! Bu safar yanada ko‘proq tajriba, o‘sish va yutuqlar bilan qaytaman 🤲
Kelajak uchun kurash davom etadi! 🙌✨
🇬🇧 Post 46 — One Month and New Beginnings 🌍✈️
One month flew by so fast. Now, I’m heading back to work. Leaving my homeland is painful, for sure, but striving for better opportunities is a part of life. Behind every hardship lies a new chance.
I’m returning to the UAE and the Ladurée family! This time with even more experience, growth, and achievements. Moving forward with patience and confidence.
The fight for a better future continues! 🙌✨
24/08/2025
#NewBeginnings#NextChapter#LaduréeJourney
#EverythingILived
📚🎉Welcome, Class of 2024! 🎉📚
✅Day 1 of Orientation Week at Green University was a huge success! Here's what our amazing new students experienced:
⏺Warm welcome from our Rector, Dr. Jasur Salikhov
⏺Exciting presentations from our Research Institutes
⏺Introduction to our Retraining Center
⏺Eye-opening session on our work in the Aral Sea basin
⏺Comprehensive campus tour, including state-of-the-art facilities and scientific labs
⚡️We're thrilled to have you all on campus and can't wait for Day 2 – it's going to be even more engaging! 💚🌱
#GreenUniversity#OrientationWeek#ClassOf2024#NewBeginnings#HigherEducation#CampusLife#AralSea#Sustainability
🚀 UXLINK、東京オフィスオープン!🇯🇵
つながりが新たな価値を生む時代。
UXLINKは、より強固なコミュニティの構築とグローバルな成長を加速させるため、東京オフィスを正式にオープンしました! 🎉
しかも… 東京タワーを一望できる最高のロケーション!🗼✨
ここからWeb3の未来を創る皆さんとともに、新たなつながりを広げていきます。
これからの日本の展開をお楽しみに!
#UXLINK#東京オフィス#TokyoTower#Web3#つながりの力#新たなステージ
🚀 UXLINK Tokyo Office is Now Open! 🇯🇵
💪A new chapter begins.
To strengthen our global network and accelerate Web3 innovation, UXLINK has just officially opened its Tokyo office! 🎉
And the best part....? A breathtaking view of Tokyo Tower right from our workspace. The office is just at the central heart of Tokyo🗼✨
From Tokyo to the world, we’re building the future of connections.
Stay tuned for what’s next. 🔥
#UXLINK#TokyoOffice#Web3#TokyoTower#NewBeginnings#FutureOfConnections