Что делать если нужно поставить какую-то 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
#Notification#Howard_Wu
模块:io.github.howard20181.notificationiconfix
简介:Notification Icon Fix / 通知图标修复
版本:103-1.7.1
更新时间:2026/03/23 00:03:03
更新日志:
变更日志
重构图标生成算法,现在背景是渐变色的也可以计算轮廓
支持 API 101
Changelog
Refactored icon generation algorithm; now it can calculate outlines even with gradient backgrounds.
Added support for API 101.
Fix #1,#12,#13
@lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot
#异常通知
我们监控到 洛杉矶2节点出现故障,目前我们正在联系上游询问具体原因,请大家耐心等待。
给您带来不便深表歉意,如有其他疑问请提交服务单联系我们。
#Notification of Anomaly
We have detected a malfunction at the Los Angeles2 node. We are currently contacting upstream suppliers to inquire about the specific cause. Please be patient.
We sincerely apologize for any inconvenience this may cause. If you have any further questions, please submit a service request to contact us.
#异常通知
我们监控到 United Kingdom 区域的1台节点 (Node: GBC) 出现 内存故障,导致内核崩溃一直重启,我们已重新部署新的实例节点,将逐步迁移受影响的实例到同区域新的实例节点上,迁移之间您的实例将会有短暂的失联状态,迁移花费时长将和您的实例磁盘大小有关系,请大家耐心等待。
给您带来不便深表歉意,如有其他疑问请提交服务单联系我们。
#Notification of Anomaly
We have detected a memory failure on one node (Node: GBC) within the United Kingdom region, resulting in a kernel crash and continuous reboots. We have redeployed a new instance node and will progressively migrate affected instances to this new node within the same region. During migration, your instances may experience brief periods of unavailability. The duration of migration will depend on the disk size of your instance. We kindly request your patience during this process.
We sincerely apologise for any inconvenience caused. Should you have further queries, please submit a support ticket to contact us.
#异常通知
我们检测发现我们的SGS区域由于我们和上游的备份BGP Session没有生效,导致上游在维护时和上游的BGP Session断开,目前正在修复,带来不便深表歉意,请耐心等待。
#Notification of Anomaly
We have discovered that our SGS region experienced a disconnection during upstream maintenance due to the failure of our backup BGP Session with the upstreams. We are currently working on fixing this issue and sincerely apologize for any inconvenience caused. Please be patient.
#异常通知
我们监控到 Germany 区域的1台节点 出现 硬件故障,上游正在安排远程手进行查看,请大家耐心等待。
给您带来不便深表歉意,如有其他疑问请提交服务单联系我们。
#Notification of Anomaly
We have detected a hardware failure on one node in the Germany region. Upstream personnel are arranging for remote assistance. Please wait patiently.
We sincerely apologize for any inconvenience this may cause. For any further questions, please submit a service request to contact us.
#异常通知
我们监控到 Singapore Standard 区域的1台节点 出现 磁盘阵列 故障,读写性能下降,我们将在明后天逐步迁移受影响的实例到同区域的其他节点上,迁移之间您的实例将会有短暂的失联状态,迁移花费时长将和您的实例磁盘大小有关系,请大家耐心等待。
给您带来不便深表歉意,如有其他疑问请提交服务单联系我们。
#Notification of Anomaly
We have detected a disk array failure on one node in the Singapore Standard region, resulting in decreased read and write performance. We will be gradually migrating affected instances to other nodes in the same region over the next two days. Your instance will experience a brief period of inaccessibility during the migration. The migration time will depend on the size of your instance's disk. Please be patient.
We sincerely apologize for any inconvenience this may cause. If you have any further questions, please submit a service request to contact us.
#异常通知
我们监控到 盐湖城节点出现故障,目前我们正在联系上游询问具体原因,请大家耐心等待。
给您带来不便深表歉意,如有其他疑问请提交服务单联系我们。
#Notification of Anomaly
We have detected a malfunction at the Salt Lake City node. We are currently contacting upstream suppliers to inquire about the specific cause. Please be patient.
We sincerely apologize for any inconvenience this may cause. If you have any further questions, please submit a service request to contact us.
@shiiinabot
Qué puede hacer este bot?
Un bot para eliminar automáticamente los mensajes no deseados predefinidos del grupo.
Idioma: Portugués
(visto en @BotsGram_cu)
#delete, #group, #notification, #message, #regex, #spam, #picture, #remove
@TodoTask_bot
Qué puede hacer este bot?
Bot simple que ayuda a realizar un seguimiento y te recuerda las tareas pendientes
Idioma: Inglés
(visto en @BotsGram_cu)
#todo, #organize, #productivity, #do, #remind, #alarm, #notification, #notify