Что делать если нужно поставить какую-то 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
Автоматический выключатель YCB6H-63 (1A~63A)
Номинальная отключающая способность короткого замыкания - 6кА
Модульные автоматические выключатели YCB6H-63 предназначены для защиты низковольтных электрических цепей от перегрузок и токов короткого замыкания, а также для оперативного включения и отключения электрических цепей переменного тока частотой 50/60 Гц напряжением 230/400В.
Выключатели имеют три типа характеристики срабатывания от тока короткого замыкания и различные области применения:
• тип B 3-5 In (номинальный ток) применяется для защиты линий освещения или линий имеющих большую протяженность
• тип C 5-10 In: применяется для защиты розеточных групп или линий с потребителями с умеренными пусковыми токами
• тип D 10-20 In: применяется для защиты трансформаторов или линий с потребителями с большими пусковыми токами
Для модульных автоматических выключателей YCB6H-63 предусмотрены дополнительные устройства как вспомогательный контакт, аварийный дополнительный контакт и независимый расцепитель. С помощью этих устройств возможно осуществлять дистанционное отключение выключателя и применять их для управления вторичными цепями.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Сардор
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция#электрощит#electric#electrician#электрика#электрик
‼️Скоро в продаже! ‼️
Серия CJX2S - это контакторы нового поколения, имеют
современный дизайн и компактную конструкцию.
В новых контакторах доступны еще больше дополнительных контактов.
Используются, главным образом для частых запусков и управления двигателями переменного тока, а также для удаленного замыкания/размыкания цепи.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Сардор
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция#электрощит#electric#electrician#электрика#электрик
Интеллектуальные воздушные автоматические выключатели серии YCW1 применяются для сетевых цепей переменного тока 50 Гц, номинального напряжения 400 В, 690 В и номинального тока между 630 А и 6300 А. В основном используется для распределения энергии, защиты цепи и устройства электропитания от короткого замыкания, пониженного напряжения, однофазного замыкания на землю и т. д. Воздушные автоматические выключатели имеют интеллектуальную функцию защиты, а ключевые детали имеют интеллектуальный расцепитель. Расцепитель может обеспечить точную избирательную защиту, которая поможет избежать отключения питания и повысить надежность электроснабжения.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Сардор
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция#электрощит#electric#electrician#электрика#электрик
Азиз дўстлар!
2019 йил 17 декабр куни Ўзбекистон ELECTRO гуруҳи томонидан ўқитувчилар ва мураббийларга бағишланган илк форум ўтказилди.
Жамоамиз номидан ELECTRO гуруҳига келажакдаги барча режаларида муваффақият тилаймиз ҳамда CNC UZBEKISTAN жамоасини фаол қуллаб қўвватлаганликлари учун катта миннатдорчилик билдирамиз.
Дорогие друзья!
17 декабря 2019 года ELECTRO группа Узбекистан провела свой первый форум посвященный учителям и наставникам.
Команда CNC UZBEKISTAN желает успехов во всех дальнейших планах и выражает огромную благодарность за активную поддержку
https://t.me/electroUzbekistan
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция#электрощит#electric#electrician#электрика#электрик
Азиз дўстлар!
2019 йил 26чи октабр куни CNC UZBEKISTAN жамоаси 1 ёшга тўлгани муносабати билан Ўзбекистон Ресторанида байрамона кечасини ўтказди.
Сизларга ушбу кечадаги фото суръатлар ва видео лавҳаларни тақдим этмоқчимиз.
Дорогие друзья!
26 октября 2019 года команда CNC UZBEKISTAN торжественно отмечала свою первую годовщину в ресторане Узбекистан.
Мы бы хотели представить Вашему вниманию фотографии и видео с этого вечера.
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция#электрощит#electric#electrician#электрика#электрик
Қадрли дўстлар!
2019 йил 23чи октябр куни CNC UZBEKISTAN жамоаси УзЭкспоМарказда бўлиб ўтган "UzExpoEnergy 2019" ҳалкаро кўргазмасида иштирок этди. Ушбу кўргазмада CNC Electric заводи томонидан 2019 йил ишлаб чиқарилган махсулотлари билан кўргазма иштирокчиларини таништирди.
Сизларга ушбу кўргазмадаги фото суръатлар ва видео лавҳаларни тақдим этмоқчимиз.
Дорогие друзья!
23 октября 2019г. Команда CNC UZBEKISTAN имела честь учавствовать на международной выставке "UzExpoEnergy2019". На данной выставке CNC Electric представил посетителям продукцию 2019 года.
Мы бы хотели представить Вашему вниманию фотографии и видеоролик с этой выставки.
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция#электрощит#electric#electrician#электрика#электрик#expo
Aziz do'stlar!
Sizlar bilan 23 dekabr kuni "Oilaviy" telekanalida bo'lib o'tgan "Картинки с выставки" teleko'rsatuvi bilan o'rtoqlashmoqchimiz.
Eslatib o'tamiz, 30 dekabr soat 19:35 da siz "Oilaviy" telekanali orqali dasturni qayta ko'rishingiz mumkin.
Дорогие друзья!
Хотим поделится с видео, которое Вы могли увидеть 23 декабря 2019 года на канале «Oilaviy» в телепередаче «Картинки с выставки»
Напоминаем, что у Вас есть еще шанс увидеть повтор 30 декабря в 19.05 на канале «Oilaviy»
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция#электрощит#electric#electrician#электрика#электрик#магазин#oilaviy