Что делать если нужно поставить какую-то 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
☝️Knaufning turli xil tizimlarida konstruktsion material sifatida gipskartondan foydalanish soddaligi va o'zida yengil hajm, qulaylik va amaliylikni mujassamlashtirgan mukammal iste'mol xususiyatlari KNAUF-qoplamalarini eng ilg'or g'oyalaringizni ro'yobga chiqarish uchun ideal yechimga aylantiradi.😊
⠀
- - - - -
⠀
☝️Простота применения гипсокартона в качестве конструкционного материала в различных системах КНАУФ и отменные пользовательские характеристики, которые включают в себя малый вес, комфорт и практичность, делают КНАУФ-листы идеальным решением для воплощения самых смелых ваших идей.😊
Cайт|Facebook|Instagram
#knauf#knaufuzbekistan#гипсокартон#dos
👷🏼♂️KNAUF-Rotband - universal gipsli suvoq.
⠀
🧐 Professionallar va yakkahol suvoq ishlari sevuvchilarning tanlovi.
⠀
☝️Chunki undan foydalanish juda oson va siz kutgan natijalarga olib keladi.
- - - -
👷♂️КНАУФ-Ротбанд - универсальная гипсовая штукатурка.
⠀
🧐Выбор как профессионалов, так и любителей проштукатурить самому.
⠀
☝️Потому что проста в использовании и никогда не подведёт.
⠀
Cайт|Facebook|Instagram
#knaufuzbekistan#knauf#rotband#dos
Eldos Fazylbekovning mahsulotlarimizga ijod nuqtai nazaridan qarashlari.😊
⠀
Biz ajoyib juftlikning ijod mahsuliga aylangan plakatlar ketma-ketligini e’lon qilishni boshlaymiz.👆
⠀
Gips – KNAUF kompaniyasining negizi.💪
⠀
- - - -
⠀
Необычный взгляд на наши продукты от креативного Эльдос Фазылбеков.😊
⠀
Начинаем публикацию серии плакатов - результата крутого тандема.👆
⠀
Гипс - основа основ компании КНАУФ.💪
⠀
#knaufuzbekistan#knauf#rotband#dos
Сайт|Facebook|Instagram
🧐KNAUF-qoplamaning tutash joylariga mukammal ishlov berishchi?
⠀
☝️KNAUF-Fugen - universal gipsli shpaklyovka eng ishonchli va to’g’ri qaror.
⠀
😊Hattoki gipskartonlaringiz nuqsonlarga ega bo'lsa ham.
⠀
🚫Bizning KNAUF- qoplamamizda hech qanday nuqsonlar mavjud emas.
⠀
👷♂️KNAUF-Fugen va KNAUF-qoplama - 100% muvaffaqiyat.
⠀
- - - - -
⠀
🧐Идеальная заделка стыков КНАУФ-листов?
⠀
☝️Более, чем реально с помощью КНАУФ-Фуген - универсальной гипсовой шпаклёвкой.
⠀
😊Даже, если у ваших гипсокартонных листов есть дефекты.
⠀
🚫Которых нет у наших КНАУФ-листов.
⠀
👷♂️КНАУФ-Фуген и КНАУФ-лист - 100% успеха.
Сайт|Facebook|Instagram
#knauf#knaufuzbekistan#fugen#dos
👷🏼♂️Yuqori sifatli yuzalarning finish yakunlovchi ishlar uchun tayyor holati, yoriqlar va oq izlarning butunlay yo'qligi - bu KNAUF-Satengips, gipsli finish qoplamasi.
⠀
☝️Gipskarton qoplamaning tutash joylarini yopishda qo’llanilmaydi.
⠀
- - - -
⠀
👷🏼♂️Высококачественная поверхность готовая к финишной отделке, полное отсутствие трещин и белых следов при касании - это КНАУФ-Сатенгипс, шпаклевка гипсовая финишная.
⠀
☝️Не применяется для заделки стыков гипсокартонных листов.
Сайт|Facebook|Instagram
#knauf#knaufuzbekistan#satengips#dos
👷♂️KNAUF-Perlfix gips yelimi gipskarton qoplamalarini va izolyatsiyalovchi materiallarni notekis yuzali devorlarning gʻisht va beton asoslariga bevosita yopishtirish imkonini beradi.
⠀
☝️Shunday qilib, siz devorlarning yuzalarini tayanch karkaslarisiz tayyor holatga keltirib, maydondan katta yoʻqotishlar qilmasdan tekislashingiz mumkin.
⠀
- - - - -
⠀
👷♂️С помощью клея гипсового КНАУФ-Перлфикс появляется возможность приклеивания гипсокартонных листов и изоляционных материалов прямо на кирпичные и бетонные основания стен с неровной поверхностью.
⠀
☝️Таким образом, вы сможете выровнять поверхности стен без установки несущего каркаса, а значит, без больших потерь площади помещений.
⠀
Cайт|Facebook|Instagram
#knauf#knaufuzbekistan#Perlfix#dos
👷♂️KNAUF-Rotband Finish – ichki (suvoq) ishlar uchun ishlatiladigan gipsli shpaklyovka.
⠀
👌Beton devorlarni bo'yoqlar va boshqa dekorativ qoplamalar uchun tayyorlash, shuningdek sirtlarni to'ldirish uchun ajoyib echim.
⠀
☝️Gipskarton qoplamaning tutash joylarini yopishda qo’llanilmaydi.
⠀
- - - -
⠀
👷♂️КНАУФ-Ротбанд Финиш - шпаклёвка гипсовая финишная применяется для внутренних работ.
⠀
👌Отличное решение для шпаклевания тонким слоем бетонных стен и поверхностей под покраску и других декоративных покрытий.
⠀
☝️Не используется для заделки стыков гипсокартонных листов.
Сайт|Facebook|Instagram
⠀
#knaufuzbekistan#knauf
#rotbandfinish#dos
👷♂️KNAUF-HP Start gipsli suvogʻi yuqori darajada suvni tutib qolish qobiliyatiga ega;
👉U xatto namlikni tortuvchi yuzalarda va katta haroratlarda ham qurib qolmaydi va qavatlanmaydi.
☝️Suvoq ichki ishlov berish jarayonlarida ishlatish uchun moʻljallangan.
- - - - -
👷♂️Гипсовая штукатурка КНАУФ-ХП Старт обладает высокой водоудерживающей способностью;
👉Она не обезвоживается и не расслаивается даже на хорошо впитывающих влагу основаниях и при повышенных температурах.
☝️Штукатурка предназначена для внутренних работ.
Сайт|Facebook|Instagram
#knauf#knaufuzbekistan#HPStart#dos
👷♂️KNAUF-HP Start gipsli suvogʻi yuqori darajada suvni tutib qolish qobiliyatiga ega;
👉U xatto namlikni tortuvchi yuzalarda va katta haroratlarda ham qurib qolmaydi va qavatlanmaydi.
☝️Suvoq ichki ishlov berish jarayonlarida ishlatish uchun moʻljallangan.
- - - - -
👷♂️Гипсовая штукатурка КНАУФ-ХП Старт обладает высокой водоудерживающей способностью;
👉Она не обезвоживается и не расслаивается даже на хорошо впитывающих влагу основаниях и при повышенных температурах.
☝️Штукатурка предназначена для внутренних работ.
Сайт|Facebook|Instagram
#knauf#knaufuzbekistan#HPStart#dos
💪KNAUF PFT - suvoq mashinalari va qorishma nasoslari ishlab chiqarishda shubhasiz dunyoda yetakchi hisoblanadi.
⠀
👷🏼♂️KNAUF PFT G4 - oʻz segmentida birinchi boʻlib tezlik va sifatning yuqori standartlarini oʻrnatgan afsonaviy suvoq mashinasi.
⠀
🧐KNAUF-MP 75 gipsli suvogʻini qo’llashda mashinadan foydalanish qoʻl mehnatiga nisbatan ish jarayonini 3-4 baravar tezlashtiradi.
⠀
☝️Mukammallikka intilish bizning umumiy maqsadimizdir.
⠀
- - - - -
⠀
💪КНАУФ PFT - бесспорный мировой лидер в области производства штукатурных машин и растворных насосов.
⠀
👷🏼♂️КНАУФ PFT G4 - легендарная штукатурная машина, первой задавшая высокие стандарты скорости и качества в своем сегменте.
⠀
🧐Машинное нанесение гипсовой штукатурки КНАУФ-МП 75 это ускорение рабочего процесса в 3-4 раза в сравнении с ручным трудом.
⠀
☝️Стремление к совершенству-наша общая цель.
Сайт|Facebook|Instagram
⠀
#knauf#knaufuzbekistan#PFT#MP75#dos