Что делать если нужно поставить какую-то 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
🎬 Movie Night в ADC уже 26 октября!
Собираемся на просмотр “Человек-Паук: Паутина вселенных” — захватывающее путешествие по мультивселенным с невероятной графикой и сюрпризами! 🕸️✨
📍 Hotel Branch
⏰ 17:00
Не забудьте зарегистрироваться: @mmzlnvb
Ждём вас на вечер фантастики и приключений! 👫🎉
#ADCMovieNight#SpiderVerse2024#Кинопоказ#ADC
😎😎😎😎
⭐️ 16 ноября в учебном центре🤝ADC — Movie Night!🎬
Приглашаем на просмотр фильма “Веном 3: Последний танец”! Вас ждут динамика, юмор и неожиданные повороты с любимым антигероем.
🖤🕷️ Будет незабываемый вечер, полный экшена и сюрпризов!
🖤🕷️
📍 Место: Hotel Branch
⏰ Время: 17:00
📥 Для регистрации: @mmzlnvb
Не пропустите шанс разделить вечер с друзьями и семьей! 👫🎉
#ADCMovieNight#Venom3#ADCSchool#Кинопоказ
😎😎😎😎
⭐️ 26 октября в учебном центре 🤝ADC пройдёт Movie Night! 🎬
Приглашаем на просмотр анимационного фильма “Человек-Паук: Паутина вселенных”🕷️(2023) — продолжение истории о путешествиях по мультивселенным с потрясающей графикой и неожиданными поворотами сюжета!
Готовьтесь к увлекательным приключениям и встрече с новыми версиями Человека-Паука!
📍 Место: Hotel Branch
⏰ Время: 17:00
📥 Для регистрации: @mmzlnvb
Приходите всей семьёй и с друзьями, чтобы провести вечер в мире фантастики!
#ADCMovieNight#SpiderVerse2024#ADCSchool#Кинопоказ#МирМультивселенной
🌟 24 августа в учебном центре 🤝ADC пройдет грандиозный Movie Night! 🎬
Присоединяйтесь к нам на захватывающий просмотр фильма "Despicable Me 4" — новой части невероятно веселой и любимой всеми истории о приключениях Грю и миньонов! Этот фильм обещает море смеха и радости для всех возрастов.
😎🍌 Приготовьтесь к незабываемому вечеру, полному юмора, веселья и удивительных приключений! 🍌😎
📍 Место: Hotel Branch
⏰ Время: 18:00
📥 Для регистрации: @mmzlnvb
Не пропустите возможность насладиться кино в компании друзей и семьи! Расскажите об этом всем, кто любит миньонов и хочет отлично провести время!
#ADCMovieNight#DespicableMe4#ADCSchool#Кинопоказ#ПриключенияНаЭкране
🌟 20 июля в ADC School пройдет грандиозный Movie Night! 🎬
Присоединяйтесь к нам на захватывающий просмотр фильма "Inside Out 2" — продолжения любимой всеми анимационной истории о приключениях внутреннего мира человека! Этот фильм точно подарит вам массу положительных эмоций и улыбок.
🧠💫 Приготовьтесь к незабываемому вечеру, полному веселья и удивительных приключений! 💫🧠
📍 Место: Main Office
🕕 Время: 19:00
📥 Для регистрации: @mmzlnvb
Не пропустите возможность насладиться кино в компании друзей и семьи! Расскажите об этом всем, кто ценит качественные анимационные фильмы и хочет провести время с пользой!
#ADCMovieNight#InsideOut2#ADCSchool#Кинопоказ#ПриключенияНаЭкране
😎😎😎😎❗️
⭐️ 12 октября в учебном центре 🤝 ADC пройдёт грандиозный Movie Night! 🎬
Приглашаем на захватывающий просмотр фильма “Трансформеры: Начало” (2024) — новой главы эпической битвы автоботов и десептиконов! Вас ждут невероятные спецэффекты, сражения и удивительные повороты сюжета.
🤖🚗 Готовьтесь к вечеру, полному приключений и масштабных битв! 🤖🚗
📍 Место: Hotel Branch
⏰ Время: 17:00
📥 Для регистрации: @mmzlnvb
Приходите с друзьями и семьёй на незабываемый вечер! 👫🎉
#ADCMovieNight#Transformers2024#ADCSchool#Кинопоказ#МирТехнологий
🌟 14 сентября в учебном центре🤝 ADC пройдёт грандиозный Movie Night!🎬
Присоединяйтесь к нам на захватывающий просмотр фильма "Кунг-Фу Панда 4"— новой части любимой всеми истории о непобедимом По и его эпических приключениях! Этот фильм обещает море экшена, юмора и вдохновения для всех возрастов.
🐼🥋 Приготовьтесь к незабываемому вечеру, полному боевых искусств, веселья и удивительных открытий!🐼🥋
📍Место:Hotel Branch
⏰Время:18:00
📥 Для регистрации: @mmzlnvb
Не пропустите возможность насладиться кино в компании друзей и семьи! Расскажите об этом всем, кто любит невероятные приключения и забавного По! 👫🎉
#ADCMovieNight#KungFuPanda4#ADCSchool#Кинопоказ#ВечерСПо
🎄✨ 28 декабрь куни 🤝ADC ўқув марказида - Christmas Movie Night!🎬
Сизни машҳур байрам комедияси “Home Alone” фильмини томоша қилишга таклиф қиламиз! Кичик Кевиннинг ўз уйини ҳақиқий Рождество қўрғонига айлантириши билан боғлиқ кулгули ва қизиқарли воқеаларга гувоҳ бўлиш учун марҳамат!
🏠
🎁
🌟 Бу кеча ҳақиқатан ҳам сеҳрли бўлиб, барчани байрамона кайфият билан тўлдиради!
🎅🍿
📍 Жой: Hotel Branch
⏰ Вақт: 17:00
📥 Рўйхатдан ўтиш учун: @mmzlnvb
🎫 Рўйхатдан ўтишингиз зарур!
Бу ёқимли кечани яқинларингиз ва дўстларингиз билан ўтказиш ва Рождество сехрига шўнғиш имконини қўлдан бой берманг! ❄️
🌲
#ADCMovieNight#HomeAlone#ADCChristmas#Кинотомоша#БайрамСехри
🎬🌟 13 июля в филиале Hotel Branch учебного центра ADC пройдёт грандиознейший ивент Movie Night! 🌟🎬
Приглашаем всех на захватывающий просмотр фильма "Ministry of Ungentlemanly Warfare" — исторический боевик, который перенесет вас в сердце самых секретных операций Второй мировой войны! Эта история о героизме, стратегии и бесстрашии не оставит вас равнодушными.
💼💥 Приготовьтесь к незабываемому вечеру полного адреналина и драматических моментов! 💥💼
📍 Location: Hotel Branch
🕕 Time: 18:00.
Берите своих друзей, готовьтесь к незабываемым впечатлениям и обсуждениям после фильма! Делитесь этой новостью и приглашайте всех, кто любит качественное кино!
#ADCMovieNight#ИсторическийБоевик#MinistryOfUngentlemanlyWarfare#HotelBranch#Кинопоказ#ИсторияНаЭкран#ГероизмНаБольшомЭкране
Если у вас есть какие-либо вопросы, не стесняйтесь обращаться к нам по телефонам:
📞 +998742261078 | +998742281121
или пишите в Telegram: @admofadc
Telegram|Instagram