Что делать если нужно поставить какую-то 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
Как стало возможных внедрить автоматизированное планирование за три недели?
🧑💻Ответила на этот вопрос Елена Безрукова, Системный аналитик AXELOT
🗣 Если у вас остались вопросы, оставляйте комментарии под этим постом — будем рады ответить!
#Эксперты_AXELOT#TMS
📉 В результате внедрения системы управления транспортом (TMS) в компании ВсеИнструменты.ру, доля ручных операций сократилась с 90% в 2023 году до 10% в 2024 году. Директор по логистике Георгий Ким рассказал об этом на SCM Конгрессе. До автоматизации логистика компании в основном зависела от ручных процессов, что создавало риски монополизации, так как около 25-30% перевозок осуществлялись одним подрядчиком.
🚚 Прежние методы работы приводили к 100 сервисным нарушениям в месяц, что была серьёзной проблемой для компании, работающей в e-com-сегменте, где клиенты ожидают быструю и бесперебойную доставку. Ким подчеркнул, что для решения проблемы был выбран путь внутренней трансформации через аудит процессов и разработку собственной TMS, автоматизировавшей 34 параметра, включая контроль времени прибытия и проверку документов.
🔧 Новая система значительно упростила процесс управления, сократив количество метрик до критически важных показателей, что способствовало более эффективной работе. Председатель отметил, что отбор перевозчиков стал более строгим: из тысячи заявок сейчас одобряются лишь десятки. Это привело к снижению числа сервисных нарушений до 17 в месяц, а в летний период до 1-5, при одновременном увеличении пула контрагентов в три раза.
____
#ТисЛоджистик🦏
#Логистика
#Автоматизация
#TMS
Какую модель использования вы рекомендуете для решений класса RTVP?
🧑💻Ответил эксперт AXELOT: Андрей Заверткин, функциональный архитектор TMS
Получите консультацию от наших экспертов по продуктам AXELOT. Ставьте + в комментариях под постом или пишите в личные сообщения ✉️
#Эксперты_AXELOT#AXELOTTMS#TMS
Что стало первопричиной появления сервиса AXELOT RTVP?
🧑💻Ответил эксперт AXELOT: Заверткин Андрей, функциональный архитектор TMS
Ставьте реакции на пост🔥. Остались вопросы - задавайте их в комментариях под постом или пишите в личные сообщения✉️
#Эксперты_AXELOT#AXELOTTMS#TMS
26 августа 2021 в г.Алматы, Республика Казахстан состоялась ежегодная конференция “Логистика будущего”.
Логисты со всей страны встретились, чтобы обсудить текущие тренды по оптимизации своей деятельности. Партнеры и участники конференции – лидеры рынка складской и транспортной логистики.
Высокий интерес слушателей к традиционным AXELOTовским решениям #WMS, #TMS и #TOS был обусловлен не только развитием транспортно-логистического потенциала Республики Казахстан, но и введением системы обязательной маркировки на широкий перечень товарных групп.
Во второй части конференции была проведена экскурсия на один из наших объектов - складской комплекс ICEBERG ALMATY, который является самым крупным морозильным складом класса "А" в Центральной Азии общей площадью 47 000м2.
📢 Как контролировать транспортные затраты в AXELOT TMS X5?
🗣️ Рассказал специалист AXELOT Евплов Андрей, Функциональный архитектор
Остались вопросы? Пишите в комментариях под постом ⬇️
#Эксперты_AXELOT#TMS#транспортныезатраты
📢Как организовать комфортную работу водителя в AXELOT TMS и удержать сотрудника?
Ответили эксперты компании AXELOT - смотрите запись вебинара❗️
#вебинар#AXELOTTMS#TMS#эксперты_AXELOT
Почему так важна архивная функция TMS, которая относится скорее к системе операционного управления?
🗣️Ответила на этот вопрос Елена Безрукова, системный аналитик AXELOT
Получить ответы на вопросы по продуктам AXELOT и подобрать нужное решение можно через личные сообщения! Или ставьте + в комментариях под постом, мы с вами свяжемся⬇️
#AXELOT#TMS#грузоперевозки#совместимостьтоваров
📡 Может ли AXELOT TMS X5 помочь управлять рисками в транспортной логистике?
🧑💻Рассказал в видеоролике Олег Голядинец, менеджер по развитию ИТ-продукта.
Задавайте вопросы по возможностям AXELOT TMS в комментариях под постами⬇️
#AXELOT#AXELOTTMS#TMS#транспортнаялогистика
📢 Каким способом YMS может сгладить пики нагрузки на доки?
✔️ На этот вопрос ответил Сергей Шейко, руководитель отдела YMS
Ставьте реакции на пост 🔥 и задавайте свои вопросы нашим экспертам‼️
#Эксперты_AXELOT#YMS#TMS#WMS
📢Какие риски закладывают перевозчики на простой при проведении погрузо-разгрузочных работ?
На этот вопрос ответил Сергей Шейко, руководитель отдела YMS, в видео ✅
Ставьте реакции на пост 🔥 и задавайте свои вопросы нашим экспертам❗
#Эксперты_AXELOT#YMS#TMS#WMS