Что делать если нужно поставить какую-то 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
Еще в далёком 2012 году мы всерьез задумались над тем, чтобы сделать Artel масштабным брендом-производителем бытовой техники.
Для нас было принципиально важно расширить продукцию от классической бытовой техники до смарт - электроники, выйти на совершенно новый уровень и открывать все более широкие горизонты для развития.
Запуск производства телевизоров стал значительным шагом для нас и прорывом в национальной индустрии.
Изначально производственная линия включала в себя сборку комплектующих, но сегодня даже один из самых сложных компонентов, SMT - материнские платы, мы производим сами.
Когда - то это казалось недостижимым, но начав с 50 тысяч телевизоров мы расширили производство до 1 млн SKU в год! Этого хватит, чтобы обеспечить техникой целые города миллионники!
Мечтайте о большем! #DreamBig
Artel - bu intilish va yutuqlar tarixi. 10 yil davomida yil sayin biz hayot uchun yanada yaxshiroq muhit yaratishni maqsad qilganmiz.
Intilishlarimiz tufayli biz Markaziy Osiyodagi eng yirik maishiy texnika ishlab chiqaruvchilaridanmiz.
Bugungi kunda Artel - yirik zavodlardan iborat kompleks, 13 mingdan ortiq xodimlar, 20 xil turdagi mahsulotlar va yiliga 7,5 million SKUni o'z ichiga oladi.
Artel - bu doimiy rivojlanish va yangi g'alabalar demakdir. #DreamBig
____________________
История Artel - это история стремлений и достижений. Вот уже 10 лет из года в год мы задаем себе планку, чтобы создавать комфортные условия для жизни.
Благодаря нашим амбициям на данный момент мы являемся крупнейшим производителем бытовой техники Центральной Азии.
Сегодня Artel - это комплекс крупных заводов, более 13 тысяч сотрудников, 20 категорий товаров и 7,5 миллионов SKU в год.
Artel - это постоянное развитие и новые победы. #DreamBig
📸Photo by @metronoise
🇺🇿 Post 47 — Bort Kuzatuchchisi orzuyim ✈️❤️
Har safar Dubai aeroportiga kelganimda, shu rasmga ko‘zim tushadi. U menga Emirates assessmentidan o‘tolmaganimni eslatadi, lekin shuningdek, yanada kuchliroq orzu va ishtiyoqni uyg‘otadi.
Lekin yaxshi bilaman, har bir muvaffaqiyatsizlik — bu yangi imkoniyat, har bir sinov — o‘sish uchun qadam.
Bu rasm menga “balki keyingi safar” degan umid va ilhom beradi. Yo‘l davom etmoqda….
#NeverGiveUp#StrongerEveryDay#DreamBig
#EverythingILived
Наш путь начался в 2011 году с производства газовых плит.
Мы изучали тенденции, совершенствовали технологию производства, тестировали и доводили процесс до оптимальных результатов.
У нас были и есть амбиции делать технику на достойном уровне!
На этапе разработки нам помогали международные эксперты, с их помощью мы оттачивали детали.
Прошло 10 лет и сегодня Artel – это производство эргономичной многофункциональной техники, которая отвечает требованиям стандартов качества.
Современный дизайн наших плит включает в себя большое разнообразие форм, высокую технологичность и удобство эксплуатации.
#Artel#ArtelUzb#DreamBig#HarKunYanadaYaxshiroq#КаждыйДеньЛучше
Muvaffaqiyat yo'limiz 2011- yil oshxona plitalarini ishlab chiqarishdan boshlangan.
Biz tendensiyalarni o'rgandik, ishlab chiqarish texnologiyasini takomillashtirdik, sinovdan o'tkazdik va jarayonni optimal natijalarga yetkazdik.
Biz texnikani munosib darajada ishlab chiqarishni istaganmiz va bu istagimiz bizni hali ham tark etgani yo'q!
Rivojlanish bosqichida xalqaro ekspertlarning ko'magi bizga asqatdi, ularning kerakli tavsiyalarini oldik.
Oradan 10 yil vaqt o'tib bugungi kunda Artel sifat standartlari talablariga javob beradigan ergonomik va ko'p funksiyali texnikalarni ishlab chiqaradi.
Plitalarimizning zamonaviy dizayni turli xil shakllar, yuqori texnologiyalar va qulay foydalanishni o'z ichiga oladi.
#Artel#ArtelUzb#DreamBig#HarKunYanadaYaxshiroq#КаждыйДеньЛучше
Artel sovutgichlari - hayot uchun qulay texnologiyalar.
To'liq model turlari quyidagi havola orqali:
https://artelgroup.org/category/refrigerators/
#Artel#ArtelUzb#Artel10Yoshda#HarKunYanadaYaxshiroq#DreamBig
Reklama
Kechki ovqatni issiq holda stolga tortish uchun 60 soniya kifoya.
🍲Artel GWD 0220 mikroto'lqinli pechi bilan siz taomni bir maromda va tezgina isitishingiz hamda mazali tanavul qilishingiz mumkin! 😋
______________
60 секунд времени нужно, чтобы подать горячий ужин на стол.
🍲С микроволновой печью Artel GWD 0220 – Вы можете равномерно и быстро подогреть еду, а также вкусно перекусить! 😋
#Artel#ArtelUzb#10лет#HarKunYanadaYaxshiroq#КаждыйДеньЛучше#DreamBig
👌🏻 Artel simsiz changyutgichlari bilan a'lo darajadagi tozalik kafolatlanadi.
⏱ 65 daqiqa davomida to'xtovsiz ishlaydi.
To'plamda:
🔸asosiy rolikli;
🔸to'shak uchun;
🔸kiyim uchun;
🔸2 tasi 1da teshikchali nasadka;
🔸yumshoq mebellar uchun 2 tasi 1da chotka;
🔸uy hayvonlaridan qoluvchi soch tolalarini yig'ish uchun chotkalar mavjud.
_______________
👌🏻 Впечатляюще качественная уборка с беспроводным пылесосом Artel обеспечена.
⏱ Непрерывно работает в течение 65 минут
Комплектация:
🔸основная роликовая щетка;
🔸щетка для матраса;
🔸щетка для одежды;
🔸щелевая насадка 2 в 1;
🔸щетка 2 в 1 для мягкой мебели;
🔸щетка для сбора шерсти домашних животных.
#Artel#ArtelUzb#10лет#HarKunYanadaYaxshiroq#КаждыйДеньЛучше#DreamBig