Что делать если нужно поставить какую-то 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
#XiaomiPad6 da sur’atlaringizga osonlikcha qayta ishlov bera olasiz
Planshetda qayerda bo’lishingizdan qat’iy nazar ishlashingiz va ijod qilishingiz uchun kerak bo’lgan barcha imkoniyatlar mavjud 😌
.
.
На #XiaomiPad6 можно с лёгкостью обрабатывать фотографии
В планшете есть все необходимое для работы и творчества, где бы вы не находились😌
Zamonaviy, shunday emasmi?
Unumdorlik dizaynga mos kelganda - bu kombinatsiya hayotda ideal tanlovga aylanadi
Istalgan vaqtda va istalgan joyda Xiaomi Pad 6 bilan kuningizni boshlang !
.
.
Стильно, не правда ли?
Когда производительность встречается с дизайном - это сочетание становится идеальным выбором в жизни
В любое время и где угодно начните свой день с Xiaomi Pad 6 !
#xiaomipad6
Xiaomi Pad 6-bu nafis korpusi va o'ziga xos xususiyatlari bilan, tezda ko'zni qamashtiradigan planshet!
✨Ajoyib displey: Asosiy e'tibor bu g’aroyib 11 dyuymli yuqori aniqlikdagi displey, chiroyli 10 bitli rang chuqurligi va ajoyib 144 Gts yangilanish tezligi.
✨Fazoviy tovush: Dolby Atmos texnologiyasiga ega to'rtta karnay/dinamik filmlar, musiqa yoki o'yinlar bo'lsin, sizni eng yuqori sifatli tovushlar bilan o'rab turgan ajoyib audio tajribani taqdim etadi.
✨Elegant dizayn: Xiaomi Pad 6-ning zamonaviy korpusi sizning shaxsiyatingizni ta'kidlab, uni nafaqat funktsional qurilma, balki zamonaviy aksessuarga aylantiradi.
Xiaomi Pad 6 - sifat farqini his eting va barcha imtiyozlardan bahramand bo'ling !
.
.
Xiaomi Pad 6 - планшет, который сразу захватывает взгляд своим элегантным корпусом и уникальными характеристиками!
✨Великолепный дисплей: Основной акцент - это впечатляющий 11-дюймовый дисплей с высоким разрешением, прекрасной 10-битной глубиной цвета и невероятной частотой обновления 144 Гц.
✨Пространственный звук: Четыре динамика с технологией Dolby Atmos обеспечивают потрясающий аудио-опыт, который окружает вас звуками высочайшего качества, будь то фильмы, музыка или игры.
✨Элегантный дизайн: Стильный корпус Xiaomi Pad 6 подчеркивает вашу индивидуальность, делая его не только функциональным устройством, но и стильным аксессуаром.
Xiaomi Pad 6 - ощутите разницу в качестве и наслаждайтесь всеми преимуществами ! 💻🎨🔊#XiaomiPad6
Yangi Xiaomi Pad 6 o'zining nozik qirralari va "ko'zni himoya qilish"👀 funksiyasiga ega 144hz yangilanish tezligi tufayli foydalanish uchun juda qulay
Bu sizga bitta zaryad bilan taxminan 16 soat davomida videoni ijro etish imkonini beradi, ammo agar zaryad olayotgan bo'lsa, planshet 33 Vt tez zaryadlash bilan jihozlangan. !⚡️
Siz esa planshetlardan nima uchun foydalanasiz?
.
.
.
Новый Xiaomi Pad 6 очень удобный в использовании благодаря его тонким рамкам и частотой обновления 144Гц с дополнительной функцией «защита глаз» 👀
Он позволяет воспроизводить видео около 16 часов без подзаряди, ну а если же зарядка села планшет оснащен быстрой зарядкой в 33вТ. !⚡️
А для чего бы вы использовали планшеты?
#XiaomiPad6
#XiaomiPad6 - hayotning har bir sohasidagi homkoringiz🌟
🎓 Ish yoki o'qish, siz u bilan
doim faollikning yuqori cho'qqisida bo'lasiz.
➖➖➖➖➖➖➖➖➖
Верный спутник во всех сферах жизни - #XiaomiPad6🌟
🎓 От работы до учебы, с ним вы всегда на пике производительности
To'liq tugmachalar, yumshoq va qulay bosish - maksimal samaradorlik uchun zarur bo'lgan barcha imkoniyatlar. 🎯
Xiaomi Pad 6 bilan kelajakingizga yo'l oching - shaxsiyatingizni aks ettiradigan va sizni yangi cho'qqilarga ilhomlantiradigan uslubingiz va dizaynni tanlang.🏃♀️
➖➖➖➖➖➖➖➖➖
Полноценные клавиши, мягкое и комфортное нажатие – все, что нужно для максимальной продуктивности. 🎯
Откройте для себя путь в будущее с Xiaomi Pad 6 - выберите стиль и дизайн, которые будут отражать вашу личность и вдохновлять вас на новые высоты.🏃♀️
#XiaomiPad6
#XiaomiPad6 - ish va ijodda sodiq do'stingiz bilan, samaralikni keyingi bosqichga olib chiqing. 🚀
➖➖➖➖➖➖➖➖➖
Поднимите продуктивность на новый уровень с помощью #XiaomiPad6 - вашего верного союзника в работе и творчестве. 🚀
Bizni ajoyib yangilik kutmoqda: yangi Xiaomi Pad 6 planshetini unboxingi!
Xiaomi Pad 6 haqida ko'proq malumot bilmoqchimisiz? Unda post ostida 🔥 qoldiring
➖➖➖➖➖➖➖➖➖
Великое открытие ждет нас: распаковка нового планшета Xiaomi Pad 6!
Хотите узнать больше о Xiaomi Pad 6?Тогда оставляйте 🔥 под постом
#unboxing#XiaomiPad6