Что делать если нужно поставить какую-то 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
Бренд ARCHIPÉLAGO представил новую коллекцию мебели 51°–7° ESSEN.
Уличная мебель вдохновлена индустриальной архитектурой Рурского региона и
эстетикой немецкого модернизма XX века. А название коллекции отсылает к географическим координатам города Эссен 🗺️
Металлический каркас выстраивает ритм линий и задаёт строгую геометрию формы.
Собранная пластика и графичная конструкция определяют характер предметов.
Для нас было важно, чтобы за этой строгостью сохранялось ощущение комфорта. Мы тщательно прорабатывали эргономику, в результате предметы получились компактными, но при этом удобными
Коллекцию впервые покажут в новом пространстве A–House, которое откроется этой весной.
#объекты#objects
Индустриальный младенец в Екатеринбурге.
Арт-объект на берегу Верх-Исетского пруда создан группой LKKL в рамках фестиваля ЧО. Младенец из металла создавался девять месяцев и весит тонну.
Малыш из металла - это наше отражение: суровый, стойкий, но в то же время искренний, отзывчивый, справедливый. Малыш вышел из воды, которая появилась благодаря строительству заводской плотины. Он спит младенческим безмятежным сном на фоне промышленного района, а вокруг него трехсотлетний город.
📸 Дима Четыре (justdfour)
#объекты#objects
Лампа «Восток-1» от Андрея Небольсина (alostlook).
Светильник вдохновлён эстетикой советского космоса и атмосферой мечты о звёздах и веры в светлое будущее 🚀
Огонь от ракеты напоминает звезду, а основание одновременно похоже на дом в стиле конструктивизма, на стартовую площадку и немного на опоры спутника.
На видео показан интереснейший процесс создания 🚀 Поздравляем с Днём космонавтики!
#объекты#objects
Коллекция ваз Accent от бренда Tkano 🏺
Дизайнер Абай Жумагулов создал коллекцию ваз, вдохновленную искусством эпохи русского классицизма 18–19 веков.
Проект объединил в себе традиционные формы и авторский взгляд на древнегреческое и древнеримское наследие. В этих вазах можно увидеть знакомые очертания античных образцов декора. А свойственная русскому классицизму строгая симметрия сохранилась в формах ваз!
Советуем заглянуть на сайт и присмотреть себе настоящий предмет искусства!
📌 Сейчас приобрести вазы можно со скидкой (до 19 апреля)
#объекты#objects
Арт-проект «Пока не растаял снег» от Виктории Хтоньв Иркутске.
Художница создала пять микро домиков в домах с «разрушенной историей». Точные адреса автор не раскрывает, но гид Саша Литвинова оставила локации, где их можно найти:
📍Общегородская водокачка (напротив МТЦ Новый)
📍Усадьба Черных
📍Бывшая гостиница «Метрополь»
📍Первый детский сад во дворе Харлампиевского храма
📍Дворец Бичаханова
📸 all.litvinova
#объекты#objects
Панно «Адаптация. Павловопосадский платок» от Марии Мельцаевой.
Автор совмещаетдизайн и ремесло, адаптируя традиции к современному миру. Работы созданы в технике - вышивка пластиком.
В основе техники лежит пластиковая нить и 3D ручка.
Несмотря на то, что пластик ассоциируется с массовым производством, здесь он приобретает уникальные формы свойственные ручному труду.
#объекты#objects
Работа Максима Ерёмина (Maksow) «Галерея Сахалин» в Южно-Сахалинске.
Главный замысел — взаимная помощь, поддержка и объединение ради общего блага, охраны флоры и фауны. Работа создана в рамках паблик-арт программы «Взгляды».
На полотнах можно увидеть, как два альпиниста вешают холст, на котором изображён пейзаж с мыса Великан. На другом полотне — море и судно 🌊 Здесь раскрывается тема рыболовного промысла, а на переднем плане расположилось поле дикорастущего иван-чая 🌱
Далее появляется другой арт-объект — пышный папоротник, который распространён на острове. Следующий холст — детский рисунок медведя, выполненный акварелью 🎨. Он был перерисован художником с рисунка его дочери.
Также можно увидеть мальчика и девочку, увлечённых росписью стены аэрозольной краской. А последняя картина — это одно из реальных окон на фасаде, обрамлённое багетом 🖼️
📍ул. Емельянова, 21-23
#объекты#objects
Детское пространство от архитектурной мастерской Paraneba 🏰
Сказочныйзамок для юных королевских особ. С такой площадкой детство точно станет временем самых фантастических приключений!
#объекты#objects
В лесопарке Питера можно встретить зайца 🐇
Художник Vladimir Net представил новую скульптуру. Найти зайца можно в парке Сосновка 🌳 Главное не испугаться ночью!
#объекты#objects
Весенний фасад цветочного дома Plombir в Санкт-Петербурге 🤩
Если в Москве мы видели фасад из пудровых тюльпанов, то Питер радует нас нежно-голубым оформлением 🤍
📍Ул. Кирочная, 8Б
#объекты#objects
Арт-объект от архитектурного бюро GAFA на Байкале.
Проект создан в рамках фестиваля «АрхБухта», где архитекторы работают с ландшафтом озера. Темой этого года стала рекурсия, и в основе — само озеро. Его история, природная геометрия и внутренние процессы.
Семь вертикальных столбов отсылают к легенде об Острове Семи Тополей, а треугольная форма делится по законам рекурсии и образует кристаллическую решетку — отсылка к тому, как ветер, вода и лед формируют пространство. Внутри объекта зеркальные пузыри – застывшее дыхание озера 🌊
Проект занял 2-е место среди 24 команд, поздравляем коллег 👏
#объекты#objects