Что делать если нужно поставить какую-то 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
Обложку для Кодекса Тиранидов 3 редакции 2001 года рисовал Адриан Смит. Вот он на последней фотке, молодой!
А вот его канал на 📱, старый 😁
#OldHammer#Warhammer40000
🗽Ретро Ваха🗽
👌Реликвариум
👌Лавка у Яррика
👌Лавка в Дзене
👌Лавка в MAX
#warhammer40000#жожеки
Первое правило вахаебского клуба: узнал - запытай знанием бэка своего товарища.
Вчера вот, Волохатого Жмеля пытала, он даже выжил)
Слава Императору, Space Marine 2 делали люди с чувством меры (чего не скажешь про вселенную в целом), которые не стали растягивать похождения десантуры на 20+ часов, а ограничились коридорной историей на 12. Честно скажу — еще немного и я бы устал от достаточно стандартного набора действий, которые предлагают авторы. Пол-игры вы гасите тиранидов почем зря с четким набором врагов, далее их сменяют хаоситы, у которых тоже все весьма понятно. К концу на нормале я прям уже начал напрягаться.
Все описанное выше могло бы бесить, если бы не такое внимание к деталям и вполне насыщенный сюжет, который крепко разбавлен экшеном. В конце так вообще хочется орать «За Императора» и в сотый раз заводить свой мечь-пилу, чтобы забить ересь в их хаоситские гудки. Ну и, конечно, очень радует, что у такого высококлассного проекта почти весь борд — русские. Кайф да и только.
Еще все очень ругаются на мультиплеер, а именно технологические проблемы с ним, но тут надеюсь починят.
Отвага и честь, в общем! #warhammer40000#games#reviews
По первым шести часам в Space Marine 2 я должен согласиться со всеми рецензентами — игра настолько с любовью и вниманием к деталям сделана, так генерит ситуации и ушатывает бескомпромиссностью Вселенной, что сидишь перед телевизором в режиме «волосы назад» (ну у кого они есть). Тит и компания, конечно, делают вещи, особенно когда их окружает огромная кишащая масса ксеносов. Местами это всё ощущается «Гирзами», но лишь до момента рукопашки, когда тонны костюма несутся за цепным мечом и за кровью не видно неба.
С другой стороны, меня это лично подушатало к концу сессии. На нормале играть без друзей уже потно (ну для меня), не знаю как там Антоша упарывался на ветеране. Тит неповоротлив и местами это прям бесит. Но тут уж ничего не поделаешь, он совсем не Байонетта. Хорошо, что игра не слишком длинная.
Теперь к минусам, которые очевидны. В игре про законы и жесткий кодекс этого самого кодекса в игре нет. Хорошо, что я еще за полгода до упоролся несколькими видео про вселенную и плюс минус в курсе че откуда (хоть и пробелов достаточно), но добавить элементарно раздел, который объясняет основные принципы. Это плюс минус есть везде, а в случае Wukong — это вообще целая энциклопедия и альманах притч. Здесь же какие-то аудиодневники и пиздец — сам разбирайся че это все такое.
Переключение между сюжетными и ко-оп миссиями почему-то направляет тебя в разные игры, а когда ты решаешь возвратиться — отправляется тебе в в самое начало, включая брифинг.
Но это все, конечно, совершенно не мешает Space Marine 2 быть одной из важнейших игр этого года и самой важной во вселенной WH 40.000. С восхитительным эпосом, картинкой и мощной десантурой во главе. Играть необходимо! #warhammer40000#games#reviews