Что делать если нужно поставить какую-то 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
Happy new learning year! Начинаем новый учебный год!
⠀
CRAFT BAR SKILLS. ТЕЛО.РАЗУМ.ЭМОЦИИ 3х дневный очный курс. Обновлённый формат + продолжение в онлайн-формате.
30/01 - 1/02 Санкт-Петербург
27/02 - 1/02 Москва?
информация и запись в личку
⠀
23/01 старт онлайн-курса на русском https://craftbarskills.com/ru/online/
19/01 старт онлайн-курса на английском https://craftbarskills.com/en/online-en/
⠀
⠀
А также заполняется график поездок, ближайшие:
19-20 / 01 Самара
7-10 / 02 Минск, Беларусь
19-24 / 02 Италия?
⠀
Если есть желание организовать гэст или тренинг у себя в городе / в баре - пишите в личку.
⠀
#craftbarskills#craftbartending#craftbarskillsonline#craftbarskillsonlineeng
10 principals of neuroplasticity
N5 Intensity matters
⠀
Интенсивность имеет значение
При попытке вызвать нейропластические изменения в нервной системе важна интенсивность желаемого упражнения, мысли, движения и т. д. Чем интенсивнее программа тренировок, тем больше вероятность того, что человек не только достигнет результатов, но и создаст долгосрочные изменения в нервной системе.
⠀
«Индукция пластичности требует достаточной интенсивности». Вопрос о надлежащей интенсивности тренировок также следует этой концепции повторения: «Какова необходимая правильная дозировка тренировки? Сколько раз в неделю? Как долго должны длиться эти тренировки?» Исследования показывают, что чем интенсивнее программа тренировок в сочетании с достаточным временем для восстановления, тем больше вероятность того, что человек достигнет результатов, и тем больше вероятность того, что эти изменения будут сохраняться с течением времени.
⠀
Отсюда напрашиваются несколько выводов относительно тренировок с барным инвентарём, что для достижения более быстрых и качественных результатов эффективнее заниматься:
во-первых, достаточно часто ( или каждый день, или хотя бы 2 дня через один) в течение достаточного количества времени, чтоб не переутомиться и в то же время устать (1,5-2 часа вполне может быть достаточно);
Во-вторых, интенсивно, то есть полностью отдаваясь процессу и постоянно развивая скорость до предельной для себя в разных упражнениях. Сначала учимся понимать, что происходит и как это работает, а дальше -начинаем развивать скорость.
⠀
Если вы тренируете разные движения каждый день и какое-то не очень хорошо получается, сделайте на нем особый акцент и посвятите часть времени ( например, 20-30 минут из 1,5 часовой тренировки) только этому движению на каждой тренировке в течение нескольких дней ( минимум, дней 10) и посмотрите на результат.
Да, бывает это скучно и нудно, но когда почувствуете скорость - невозможно остановиться!
⠀
Интенсивных вам тренировок!
⠀
#trainyourbrain#craftbarskills#craftbarskillsonline#craftbarskillsonlineeng#bartendersbrain#practiceeverywhere
10 principals of neuroplasticity
N6 Time matters 🧠⌛️
⠀
Продолжаем тему нейропластичности и эффективного использования основных принципов в подходе к тренировкам.
Время имеет значение. Этот аспект особенно важен в отношении восстановления каких-либо повреждений мозга - чем раньше, тем лучше. Различные формы пластичности проявляются в разное время во время тренировки. Чем раньше вы сможете начать терапию после травмы нервной системы, тем лучше. Исследования показывают, что вы всегда можете что-то улучшить, но самые большие возможности для изменений в мозгу открываются на раннем этапе. Фактор времени может быть даже более важным после повреждения головного мозга, учитывая динамические изменения в нервной среде, которые происходят независимо от какой-либо реабилитации.
⠀
Но этот аспект также можно и применить к построению тренировочного процесса.
⠀
1️⃣Во-первых, тренировки будут эффективнее, и мозг будет быстрее формировать движения ( навыки), если тренироваться примерно в один часовой промежуток изо дня в день.
2️⃣Во-вторых, гораздо эффективнее тренироваться на «свежую голову», когда мозг ещё свеж, и психический ресурс не истощён, то есть в первой половине дня после пробуждения. Особенно когда речь идёт о каких-то новых для вас движениях и навыках. Понятно, что не всегда можно для себя организовать такой график. И порой приходится тренироваться тогда, когда есть на это время. И в этом случае будет эффект. Суть в том, что в случае тренировки на «свежую голову», этот эффект значительно сильнее и навыки нарабатываются быстрее. Этот принцип также используется и в планировании других задач, сначала решать самое необходимое, важное и сложное, а дальше - попроще, так как в любом случае от нагрузки мозг устаёт, и просто может не хватить сил и психических резервов на сложные задачи.
3️⃣Третье, выбирайте подходящее для себя время, когда вы сами чувствуете, что тренировки становятся наиболее эффективными. И если ваш график устроен так, что есть время только глубокой ночью, то и забудем про все предыдущие правила -главное, что оно вообще есть!
⠀
Своевременных вам тренировок!
⠀
#trainyourbrain#10принциповнейропластичностивтренировках#craftbarskills#craftbarskillsonline#craftbarskillsonlineeng#bartendersbrain#practiceeverywhere