Что делать если нужно поставить какую-то 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
Windows 11 二月更新可能导致部分三星笔记本电脑用户无法访问 C 盘
#Bug
微软正在调查一个影响部分三星笔记本电脑的问题。这些用户在安装 2026 年 2 月安全更新后无法访问 C 盘,无法启动应用。微软表示正与三星合作以确定该问题是否与 Windows 更新或受影响设备上安装的三星软件有关。微软称,受影响用户会遭遇 C 盘无法访问,访问被拒绝的错误信息。该问题也阻止用户访问文件,启动 Outlook、Office、浏览器、系统工具和快速助手(Quick Assist)。问题主要发生在巴西、葡萄牙、韩国和印度,影响三星 Galaxy Book 4 等消费类设备。该问题可能与三星共享应用有关,但确切原因尚未确认。
https://www.bleepingcomputer.com/news/microsoft/microsoft-windows-11-users-cant-access-c-drive-on-some-samsung-pcs/
💀«Durov has died», «you will be killed tomorrow», «message not delivered», «access to the server has been completely terminated» — these scary messages were sent from the official Telegram account? These messages have been spreading since the launch of the Guest Mode functionality for bots. The most interesting thing is that the bot guest mode works not only in groups, but also in personal messages. And +42777 (and other support accounts) are also PMs.
🤖 At first, there was a #bug where forwarding messages from a PM sent by a bot with guest mode was attributed to your interlocutor — not a bot. You can imagine that a guy created his own bot where by writing " @yourbot" (without quotes) he sent a certain word specified in the script. 🔹 Now guest mode does not work in support, and the bug has been fixed — the authorship of forwarded messages is assigned correctly.
Source: 💌💌💌
Windows 11 一月更新可能导致部分 PC 无法启动
#Bug
根据微软的支持文档,Windows 11 一月安全更新可能导致部分 PC 无法启动,它正在收集用户和 IT 管理员的反馈。用户无需卸载此更新,因为该问题“仅限于”特定 PC。目前不清楚有多少用户受到影响,微软列出了两个受影响的平台:KB5074109 – Windows 11 25H2 和 KB5074109 – Windows 11 24H2。微软称,受影响的 PC 可能会突然停止启动,出现黑屏死机 (BSOD)错误,错误代码为 UNMOUNTABLE_BOOT_VOLUME。
https://admin.cloud.microsoft/Adminportal/Home?source=applauncher#/windowsreleasehealth/:/issue/WI1221934