Что делать если нужно поставить какую-то 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
Завтрак утром, бар вечером? В Питере другие правила...
⠀
Наша студия реализовала уникальный проект для нового ресторана в центре Санкт-Петербурга.
⠀
Prosa Breakfast Bar – атмосферное место напротив Спаса на Крови, где вы можете окунуться в атмосферу викторианского стиля, созданного Андреем и КсениейКарельскими.
⠀
🪟 Разработанный нами логотип повторяет формы оконных рам и обрамления картин, подчеркивая детали интерьера.
⠀
В рамках проекта был создан уникальный паттерн, отсылающий к интерьерам европейской культуры, где зачастую можно увидеть живые деревья во дворах уютных ресторанов.
⠀
Все это органично отобразилось на всех носителях, таких как: меню, стаканы, стикеры или даже барная стойка.
⠀
Рекомендуем к посещению!
📍 Санкт-Петербург, наб. канала Грибоедова, 5
#lupo#lupodesign
Надо бы ребрендинг сделать. Но и сайт тогда придётся обновлять.
Ребята из Eleon справились с первой задачей, а мы помогли реализовать вторую.
Одностраничный сайт производителя со всем необходимым функционалом уже вышел в свет. Удобный и яркий – что ещё нужно для современного бренда?
На сайте можно ознакомиться со всей подробной информацией: список вкусов и их описание, позиционирование бренда, контакты и прочее.
+600к к продажам обеспечено!
#lupo#lupodesign
🎸 По настоящему роковой логотип.
Сотворили умопомрачительное лого для Трёхи, блогера в кальянной индустрии, который ведёт популярный YouTube-канал Rock Love Hookah.
Дима один из немногих тру поклонников данного жанра музыки, поэтому логотип напрямую отражает его любовь к этой культуре.
⠀
Буква «ё», в красном цвете, под видом всеми известного жеста идеально вписалась в нашу идею с использованием медиатора вокруг лого.
Логотип сразу же начал использоваться не только в онлайн жизни, но и в офлайн. Например, они изготовили крутой мерч совместно с компанией Tongs Wear.
⠀
#lupo#lupodesign
🧁 Приготовили действительно вкусное лого!
Разработали логотип для кондитерской в Казани La Retta
Нежный, сливочный, аппетитный логотип с сахарными палочками, чтобы вот совсем сладко было.
Логотип ужа вовсю используется в реальной жизни (если ты ещё не выпал из неё, как мы).
Визитки, наклейки, воздушные шарики, упаковка для замечательных тортов, и даже на выставку сделали крутую вывеску, которая светится, вау, короче.
Также, сделали несколько внутренних заданий для бренда, например, тематические открытки, приуроченные к священному месяцу Рамадан.
#lupo#lupodesign
Бог есть? Ну кто-то же создал этот логотип…
⠀
С божественными усилиями мы разработали логотип и фирменный стиль для российского производителя чаш с внушающим названием – Тор.
⠀
Исторический. Сильный. Божественный.
⠀
Логотип заключает в себе силу и крепость Мьёльнера, молота скандинавского бога Тора, в свою очередь напоминающего силуэт чаши.
⠀
Неповторимый, как каждый удар молнии, патерн заключает в себе всю мощь богов.
⠀
Мы считаем, что у каждого бренда должна быть такая же мощная история за спиной. Это определенно путь к успеху.
⠀
Чаши уже в продаже. Подробнее ознакомиться с условиями можно у них в Инстаграме.
⠀
#КрепкиеКакМолотТора
#lupo#lupodesign