Что делать если нужно поставить какую-то 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
🤴Мы запускаем DYOR Tips.
ℹ️DYOR Tips- это цикл публикаций, которые ближе познакомят пользователей с нашими основными продуктами, расскажут о том, как ими можно пользоваться и почему они могут быть полезны в применении.
🔜 Первая публикация о главной странице DYOR.io и её возможностях выйдет уже в эту субботу.
🔥В честь этого мы запускаем небольшой интерактив для наших пользователей, в котором вам нужно будет предложить какую-нибудь интересную фичу, которую мы можем внедрить на главной странице нашего сайта, в один из наших чатов с хэштэгом #homepage
DYOR.io Chat (EU)
DYOR.io Чат (RU)
🎤 Мы будем принимать ваши предложения до 28 сентября этого года, после чего соберём их все, рассмотрим на предмет целесообразности и выберем из них три наиболее интересных и полезных.
💎 Их авторов мы наградим нашим DYOR coin:
🥇 За 1 место - 7 $DYOR
🥈 За 2 место - 5 $DYOR
🥉 За 3 место - 3 $DYOR
✏️ Дерзайте!
Сайт • Чат • 𝕏 • Поддержка
Начнем с рассмотра главной страницы сайта asb-video.ru
Логотип компании, кнопка вызова по телефону, оператор в телеграме и кнопка меню расположились в верхней части экрана мобильного устройства.
Далее нас встречает баннер, который в будущем может превратиться в слайдер акций, скидок или нового проекта.
Ниже нас будут ждать типовые решения для дома, офиса, склада, магазина или квартиры, которые
ООО «АСБ» может предложить для вашего видеонаблюдения.
После типовых решений нас ждёт уникальное целевое действие.
Интерактивным интерфейсом мы заинтересуем посетителей сайта воспользоваться калькулятором подсчёта сметы персональной
системы видеонаблюдения.
Для этого необходимо ввести два значения с помощью клавиатуры — количество помещений и общую площать вашего объекта.
Я придумал систему просчёта количества необходимого оборудования для не сложной среднестатистической системы.
По кнопке ниже калькулятора мы перейдём к просчитанной смете
и сможем ознакомиться
с составом автоматически подобранного решения.
Внизу экрана мобильного устройства вы всегда сможете увидеть кнопки главной, каталога, калькулятора, контактов и кабинета технической поддержки.
В следующем посте мы рассмотрим меню сайта.
#asb#mobile#uxui#design#asbvideoru#homepage
www.asb-video.ru
#vue#awesome#dashboard#docker#hacktoberfest#homelab#homepage#mit#nodejs#organization#productivity#pwa#self_hosted#startpage#vue
Dashy is a free, open-source dashboard that lets you organize and access all your self-hosted services, apps, and web links from one central place, making it easy to manage and monitor everything you use regularly[1][2][4]. It comes with over 50 pre-built widgets for things like system monitoring, news, weather, and productivity, and you can customize the look and layout with themes, icons, and different views[4][5]. The main benefit is that Dashy saves you time and hassle by giving you a single, user-friendly page to launch and check on all your important services, with features like instant search, status indicators, and multi-language support[4][5].
https://github.com/Lissy93/dashy