Что делать если нужно поставить какую-то 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
Я упал с 30 метровой скалы. Колено и голеностоп вывернуло. Резкая боль пронзила ногу.
Это случилось на днях. Мы поехали с друзьями подснять сочного контента. Я был уставший, потому что только закончил программу ПОДГОТОВКА К СОРЕВНОВАНИЯМ FWQ.
Но, лучше бы мне остаться дома.
Уже на разминочном спуске почувствовал сильную усталость. Стоило бы развернуться и плюнуть на все. Ведь именно это я говорю своим студентам и мои инструкторы учат в школе ПРО ЛЫЖИ: Всегда уходи голодным со склона!
Но я проигнорировал это правило и огреб по полной.
Перед проездом я внимательно изучил склон с разных сторон, выбрал линию, отметил точку приземления. Все выглядело белым и пушистым. Без проблем – снимаем. И, конечно, был правильный свет, который нужно было не пропустить - шли тучи. Я спешил.
Точка старта. Проезд до дропа. Прыжок… И в момент приземления одна нога попала в яму под камнем, который был еле присыпан, и не читался на склоне. Лыжа ушла в сторону. Удержаться было не реально. Я потерял равновесие и покатился кубарем с 30 метровой скалы.
Колено вывернуло, но насколько все серьезно я осознал только потом.
Дальше началось самое страшное. Меня накрыло лавиной. Снег который я сорвал своим падением, ссыпался в узкую ложбину, на дне которой я лежал.
И ЕДИНСТВЕННОЕ, что меня спасло в этот день это инстинкт и реакция, в момент остановки я рванул вверх и в этот момент меня накрыло снегом. Если бы остался лежать, как это часто бывает с райдерами после падения, то меня бы засыпало. Я не катался один, но человек, который мог оказать мне помощь, уже был ниже меня по склону и не успел бы ко мне..
Никогда не сдавайтесь. Не расслабляйтесь после падения в местах, где есть даже малая вероятность схода слаффа. Вставайте сразу.
И помните, такое может случаться с каждым. Каким бы профессионалом вы не были. Ну и, конечно же, оставайтесь дома, если чувствуете, что сегодня нет сил на каталку. @invokedrinks#invoke
Регистрация на Invoke x PumpJam 2025 открыта 🔥
Переходите и оставляйте свои заявки, чтобы принять участие в самом жарком событии этой весны 👇
http://invokepumpjam.ru
#invokedrinks#invoke
INVOKE НА САМОЙ ВЫСОКОЙ ТОЧКЕ РОССИИ И ЕВРОПЫ 🏔️
…или как мы покоряем самые опасные горы!
Недавно Григорий Корнеев вместе с участниками программы «Эльбрус. Восхождение» взошел на вершину самой высокой горы России. Красивые кадры прилагаются.
Смелость и отвага, храбрость и решительность – это все про нас. Про тех, кто не боится взглянуть страхам в глаза и бороться до конца. Гордимся! ❄️
#invokedrinks#invoke
8 июня в Юкках прошел первый этап чемпионата по ХСО Северо-Запада 🌳
Трасса гонки неоднократно принимала самые статусные соревнования, в том числе международные. Продолжительность гонки составила 1,5 часа. Поздравляем победителей и призеров соревнований, показавших настоящее кросс-кантри мастерство.
Видно сразу, заряжены INVOKE💚
#invokedrinks#invoke
Заряжаем детей MM RACING School лимонадами, а тренеров – энергетическими напитками INVOKE ❤️
Детский лагерь и тренировочные сборы проходят гораздо продуктивнее и веселее, когда под рукой есть вкусный запас энергии 🍒
#invokedrinks#invoke
I этап кубка Новгородской области по триатлону 💛
1 июня в Новгородском районе состоялись соревнования на велосипедно–шоссейной трассе.
Уже 2 год подряд мы заряжаем энергией спортсменов перед и после прохождения дистанций. Всего участники преодолели 2546.5 км, финишировали 167 человек.
Очень энергичное начало этого лета вместе с invoke 🔥
#invokedrinks#invoke
В Австрии завершилась самая известная в мире экстремальная гонка эндуро ⚡️
Вот и итоги по гонке:
⏺36 км трек;
⏺27 кп;
⏺таймбар – 4 часа;
⏺500 участников из 1000 на прологе.
Спортсмен invoke Данила Черняев занял 30 место на легендарной гонке Red Bull Erzbergrodeo, доехав до 21 кп. Поздравляем 🔥
#invokedrinks#invoke
ВСЕМИРНЫЙ день БЕГА 👣
Международный день бега ежегодно отмечаемый в первую среду июня, то есть сегодня!
Поэтому хотим поздравить всех причастных с праздником и напомнить, что на эту тему у нас есть интереснейший подкаст с Максимом Егоровым, которой пробежал 10 000 км от Санкт-Петербурга до Владивостока 👀
📱смотреть на YouTube
#invokedrinks#invoke
Гравийная гонка с INVOKE 🏁
31 мая ребята из @la_ruta провели
домашнюю гравийную гонку в сумерки. 43 км с набором высоты 280м. 30% асфальт, 70% лес с довольно сложными горками, корнями и песком.
Вышла непростая, но очень атмосферная гонка в кругу друзей. А главное, что несмотря на позднее время гонки все были полны энергии 💚
#invokedrinks#invoke
Вчера Илья Кузьминов провел турнир по самокату в городе Урай, Ханты-Мансийский автономный округ ⚡️
Турнир на Кубок главы города собрал несколько десятков самокатчиков. Они приняли участие в соревнованиях и мастер-классе от Ильи.
Ребята прокачали свои навыки и научились делать новые трюки под присмотром действующего чемпиона России 🔥
#invokedrinks#invoke
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ЗАХВАТЫВАЕТ МИР? 🤖
Сегодня в гостях нашей студии Григорий Фокин – специалист, который работает в компании по разработке нейросетей. В новом подкасте мы обсудили самые интересные и актуальные вопросы, связанные с искусственным интеллектом.
Как работает ИИ? Как правильно вводить запросы и на какие нейросеть никогда не ответит? Откуда она все знает? Топ 10 нейросетей, чем они отличаются от человека, а также самые распространенные мифы про ИИ уже в новом подкасте от Invoke 🔥
#invokedrinks#invoke