Что делать если нужно поставить какую-то 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
💫Художники в театрах: кто создавал декорации?#theatre
Как театр переносит нас в другой мир? Огромную роль в этой магии играют декорации и костюмы, передающие настроение героев и дух их эпохи.
Мы собрали 4 известных художников, которые создавали сценические образы и костюмы, делая театральные постановки настоящими произведениями искусства 🤍
ART FLASH
💫«Она — его вселенная, он — лишь часть ее мира»: Аня Чиповская и Андрей Мартынов о спектакле «Митина любовь» #theatre
Премьера спектакля «Митина любовь», поставленного режиссером Владиславом Наставшевым, прошла в сентябре этого года. В основе постановки — одноименная повесть Ивана Бунина, написанная ровно 100 лет назад, но по-прежнему звучащая современно.
Роль Мити исполняет Андрей Мартынов, а Катю играет Аня Чиповская. В нашем разговоре с актерами — о роли тела и пространства в спектакле, о доверии, которое рождается между партнерами на сцене, и о том, как проживать историю любви, которая изначально обречена. Подробнее — в карточках и в новой статье на сайте🤍
ART FLASH
💫«Она — его вселенная, он — лишь часть ее мира»: Аня Чиповская и Андрей Мартынов о спектакле «Митина любовь» #theatre
Премьера спектакля «Митина любовь», поставленного режиссером Владиславом Наставшевым, прошла в сентябре этого года. В основе постановки — одноименная повесть Ивана Бунина, написанная ровно 100 лет назад, но по-прежнему звучащая современно.
Роль Мити исполняет Андрей Мартынов, а Катю играет Аня Чиповская. В нашем разговоре с актерами — о роли тела и пространства в спектакле, о доверии, которое рождается между партнерами на сцене, и о том, как проживать историю любви, которая изначально обречена. Подробнее — в карточках и в новой статье на сайте🤍
ART FLASH
🌟Балет — это часть культуры, но искусство ли?#theatre
В новом материале мы побеседовали с балериной Михайловского театра Анжелиной Воронцовой о том, как важно помнить о своем ментальном здоровье людям творческих профессий, разнице между русскими и западными театрами, а также о сотрудничестве с Начо Дуато и Николаем Цискаридзе.
«На сцене я вольна жить и делать так, как бы это делала моя героиня».
Прочитать статью можно по ссылке на сайте ART FLASH Magazine.
ART FLASH
современная природа, 2021
центр вознесенского, мск
р. э. куликова
в дневнике под заглавием ‘современная природа’ британский режиссёр дерек джармен писал про кино и свою болезнь столько же сколько и про цветы, которые высаживал в саду в Дангенессе. здесь линия повествования расходится потому что очень много можно сказать.
но то же и на сцене: экраны, звуки, цветы. большой душный город поставлен на паузу. намеченная кульминация не происходит и для этого рассказа она не требуется.
раз внешние события страшны то посмотри на вереск и лаванду и ромашки и шиповник
#theatre#book
Сыграли сегодня спектакль «Ночь её откровений» в Волгограде. Первый акт дался непросто… Одна из зрительниц в зале была с нами в постоянном диалоге. Прям громко беседовала, что-то выкрикивала. И никто ей и нам не помог… Странное ощущение. Но наверное, чем больше будет гастролей, тем больше разного опыта и баек у нас накопится. Всякое бывает. Понимаю. Жаль только, если всем другим зрителям это помешало восприятию спектакля 🙌🏻🕊️
#гастроли#theatre
Театр был щедр ко мне с самого раннего детства. С первой роли в мюзикле «Энни». Театр дал мне много главных ролей в независимых постановках и на самых уважаемых театральных сценах страны. Театр подарил мне путешествия/гастроли по всей нашей огромной стране и за её пределами. Театр познакомил меня с прекрасными людьми: с достойнейшими партнерами на сцене и верными зрителями в зале. В театре воплотились мои первые пробы перв и робких постановок. Театр не побоялся меня в самых разных жанрах. В театре я - везунчик! 🙌🏻 Не принимаю, как должное 🙌🏻 Благодарю! 🙌🏻 Спасибо, Господи! 🙌🏻
С Днем Театра, Друзья! 🙌🏻💖❤️💖
#theatre#деньтеатра
Фото: Семён Оксенгендлер
Завтра впервые везём «Ночь её откровений» в Кострому. Волнуюсь всегда. Хочу, чтобы вам было хорошо с нами, чтобы вместе и насмеялись вдоволь, и погрустили о важном. Главное чувство, которым наполняюсь после встречи со зрителями, - благодарность. 🙏🏻❤️ Спасибо за эту возможность - играть для вас, видеть ваши лица. 🙏🏻
# ночьеёоткровений #гастроли#театр#theatre