Что делать если нужно поставить какую-то 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
🎂 20-летний юбилей отмечает God of War! В далеком 2005 году спартанец Кратос получил в свои мускулистые руки подарок от Ареса - могущественные Клинки Хаоса. Тут-то история и завертелась! Сперва пали боги Олимпа, затем пришел черед обитателей царства Аида. А уж что Кратос сделал с Афродитой - это приличными словами вообще не описать...
В общем, поздравляем культовую серию с днём рождения!
НИМ#GodOfWar
Инсайдер Дэниел Рихтман сообщает, что Макс Паркер («Салаги») ведёт переговоры о роли Бальдра, а Олафур Дарри Олафссон («Разделение») рассматривается на роль Тора в экранизации God Of War
#GodOfWar
🪓God of War и Источники
Сегодня у меня ленивый день, который я решил провести играя в приставку. Делаю я это крайне редко. Причиной тому недостаток времени и интересных игр. Но недавно, с легкой руки моего хорошего друга Сергея Верпецкого (он же @s_vepretskii ) я начал играть в God of War. И знаете что? Все значительно лучше, чем я думал...
🌞 Вендаль, как источник - это первое, что кидается в глаза. Огромное количество элементов и механизмов усыпаны огромными гранатами, и явно скопированы с вендальских украшений
👧 Отрезанная голова Мимира рассказывает вполне себе правильные истории из младшей Эдды и не только. Вот сейчас послушал про Скадди.
🫙Ну, и всякие мелочи: руны, крышки ведер, украшения всех поверхностей и прочее.
Безусловно, фантазий очень много, но приятно, что все же какие-то источники присутствуют.
#история#игры#GodofWar
Продолжаем смотреть красоту💙🩷
God of ruin свежий цветочный аромат с нотками базилика и пачули, но в тоже время нежный, напоминающий летнюю ночную прохладу.
Внутренним украшением свечи, конечно же, выступают голубые бантики🤩
God of War - аромат, который будоражит каждого. Сладкое розовое шампанское с сахарными нотами - один из самых вкусных запахов🫦
Добавили нежности в виде розовых сердечек и шиммера вмешанного в воск💘
#свечи#godofwar#godofruin
🧔♂️Викинги носили отрезанные головы Мимира
Долго думал о том, как назвать пост. Решил так. Кликбейт, знаете ли.
Кто-нибудь играл в God of War? Помните, как кратос носил отрезанную голову Мимира? Если нет, то введу в курс дела:
В скандинавской мифологии Мимир - великан, который охранял источник мудрости. Однажды по наговору он был обезглавлен. Один пожертвовал правым глазом, чтобы оживить его голову, которую отнёс в подземную пещеру у корней мирового дерева Иггдрасиль. Там он мог советоваться с головой и пить воду, которая наделяла временной мудростью. Главной герой игры, в общем-то, делал то же самое. Да и жители Скандинавии не отставали.
Нам известен целый круг привесок с изображением человеческой головы. Они есть совершенно разные. Ученые не могут прийти к точному толкованию данного предмета, но мне эта идея кажется логичной. Почему?
1. У большинства привесок хорошо видно, что волосы переходят в место крепления подвески
2. Какие еще у нас есть отрезанные важные головы в скандинавской мифологии?
3. Голова Мимира - советчик и проводник в мир мудрости. Отличный оберег для тех, кто хочет быть прозорливее и мудрее.
Кстати сейчас можно купить массу брелоков с современной головой Мимира из игры. Люди не меняются.
#викинги#GodofWar#мифология#археология