Что делать если нужно поставить какую-то 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
Dr. Fischer
Steinbock Riesling
Германия 🇩🇪, Мозель-Саар-Рувер, белое, полусухое, крепость 12%, Рислинг.
Гордый козерог, как символ стойкости и бесстрашия в крутых поворотах жизни (козерогам привет🤘), конечно меня заинтересовал и не обманул ожиданием.
Блестяще, минерально, ароматно, а вкус требует повторного глотка.
В аромате цитрусы, ананас и стержень карандаша или мелка кохинор).
Вкус нежный, мягкий, живой, прекрасно сбалансированный, с интересной структурой и ярким послевкусием.
Ценник +/-1500р.
Чин!🍷
#Steinbock#Riesling
@pro_Wines
Lucien Albrecht
Riesling Reserve
Франция🇫🇷, Эльзас AOC, белое, полусухое, крепость 12,5%, моносорт Рислинг, 2019г.
Очаровательная, сдержаная классика. В бокале блестящее золото и салатовые блики.
В носу спокойный, стойкий аромат, минеральные тона, тонкие цитрусовые ноты, сухотравье и первоцветы.
Вкус с дружелюбной кислотностью, насыщен, как и аромат цирусовыми и минеральностью. Послевкусие да!, задумчивое, требующее повторного глотка.
Сможет полежать подождать вас в прохладе 3-5 лет, если вы к нему ппока ещё не готовы)
Ценник +/-1700р.
Замечен в магнолиях.
Чин! 🍷
#Lucien_Albrecht#рислинг
#Riesling
@pro_Wines
Сегодня 13 марта, международный день Рислинга и мне есть что сказать!
Рислинг для меня самый понятный сорт и достаточно лёгкий в уходе, но первые года урожай не давался легко, искали подход и даже больше 50% однажды срезали на землю. Печально, но факт.
Однако в 2023 году его Величество Рислинг приятно нас удивил и подарил прекрасный урожай! Настолько прекрасный, что некоторые виноделы просили меня продать виноград им!
Кстати, Riesling Domaine Bonamy 2023 мы скоро будем разливать по бутылкам и это вино будет готово одним из первых! Урожай умеренный и количество бутылок, соответственно, тоже!
За винификацию отвечал Дмитрий Маслов - наш профессиональный энолог, с которым мы сотрудничаем уже не первый год.
Оцениваем Рислинг 2023 как классное летнее, лёгкое и освежающее вино и с нетерпением ждём выпуска!
Photo by @koni_krim
#Riesling#рислинг#энолог#DomaineBonamy
Дорогие друзья! Наш дебютный Riesling Domaine Bonamy 2023 едет на фестиваль RieslingRoad, который состоится 25 августа, в Москве!
Ищите нас на стенде vino.ru, мы будем там! Регистрация на фестиваль 👉здесь
Будем рады всех видеть! 🥂
#riesling#rieslingroad
#DomaineBonamy#винору
Друзья! Лето - время рислингов и фестиваль RIESLING ROAD возвращается!
Фестиваль уже побывал в Санкт-Петербурге и Екатеринбурге и спешит в Москву.
В Москве 25 августа на веранде ресторана «Дом 16» (Покровский б-р, 16-18, стр. 4-4А) соберутся профессионалы рынка и поклонники рислингов на круговую дегустацию более 100 вин со всего света познакомиться с новинками от партнеров и продегустировать полюбившиеся вина! Мастер-классы, интересные спикеры и отличное настроение в эти жаркие дни обеспечено!
Следуй за рислингом вместе с нами!
Программа и билеты по ссылке. Сайт проекта: https://rieslingroad.ru
@rieslingroad#riesling#rieslinglover#rieslingwine#rieslingroad
Моя последняя любовь, учитывая ровное отношение к Рислингу.
Paddle Creek Riesling Rose
Lake Road
Новая Зеландия🇳🇿, Мальборо, розовое полусухое, купаж 97/3 Рислинг и Пино Нуар.
Лёгкое и приятное вино.
В бокале нежный прозрачный розовый цвет как уходящий весенний закат, чуть с рыжиной. В носу лекие красные фрукты, цитрусы, трава и... сама суть клёвого Рислинга - резина, велосипедная шина, машинное масло на тряпке в гараже .. Вкус маслянистый, не без тропических фруктов, с минимальной кислотностью. При этом хрустящее и свежее послевкусие.
Ценник +/-1100р.
Чин! 🍷
#дайтеДве#рислинг#rose
#Paddle_Creek#Riesling
@pro_Wines
Belmas Risling
Россия 🇷🇺, Крым (Севастополь), крепость 13,5%, моносорт Рислинг, о чём нам лаконично сообщено на этикетке Ri.
Отличный Рислинг из линейки, можно сказать, "Менделеев". Кстати, экземпляр занял высокую позицию в рейтинге лучших российских вин.
В носу персики, цитрусы, цветы и грушевые леденцы. Вкус идеальный - яркий, кислотный, нежно фруктовый с долгим интересным минеральным послевкусием. За оформление и внешний вид бутылки - респект. Очень стильно, да и вкусно)).
Ценник +/- 3000р.
Чин! 🍷
#Крым#Севастополь#Belmas#Riesling#Ri
@pro_Wines