Что делать если нужно поставить какую-то 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
🆓REDEEM CODES🆓
🎁🔗#Genshin #Code This WeekNEW!!
A new code introduced to Genshin:
🎈A0NBWRZZI3XJ🎈
✨20 primogems and 160 geodes of replication
Genshin Impact v6.5 Codes (Full List)
Add @APKFreeDownloader_Bot to get any apk you want.
🆓REDEEM CODES🆓
🚀💎Genshin Impact 6️⃣.3️⃣#Code
🌟📌The 6.3 version "Luna IV" update is finally arrived, with a new version launch code for all players:
🌙【 MoonInvitationLunaIV 】🌙NEW!!
Enter it in the code redemption box and you'll receive 40 primogems, 20 thousand mora, and 3 hero's wit!
🕹️Join Columbina in Genshin Impact 6.3
🎁#Genshin Impact New Codes (Complete List)
Add @APKFreeDownloader_Bot to get any apk you want.
🆓REDEEM CODES🆓
🏰Cookie Run Kingdom 6️⃣.1️⃣🎁#Code
🍪🚩November 2025
✨🍪Redeem Code: 【 HOTY2025 】
Redeem it and you'll receive:
✅💎3k Crystals
✅🌈1.5k Rainbow cubes
✅🍪1k Choco Chalks
🔎🎁#CRK Codes: All the Latest Codes & How To Redeem
Add @APKFreeDownloader_Bot to get any apk you want.
🆓REDEEM CODES🆓
#🐉🕹️Dragon Raja : ReRise🎁#Code
🎉📍SEA Server Opens on 8/14!!
6GB+ Free Space Is Required!!⬇️
Launch Code: 🎁【 LZHX66】🎁
(The code can be redeemed on 8/14 at 10 AM)
Use this EXCLUSIVE code to get 1x Starter Pack of 20x Chalice Supply Box.
⌛ Code can EXPIRE FAST‼️ Claim it AS SOON AS you see this!
[MORE REWARDS]
*Launch to get 🎡400 DRAWS!!
*Complete the Dragon Raja × Life Makeover Collaboration Event for an additional 💎500 DIAMOND rewards!
About 🎮Dragon Raja : ReRise]
[Customization] Design Your INKMANCER in Casual/Retro/Street/Futuristic style.
[Time Combat] PvE Training. PVP Duels. Club Matches.
[Life Sim] Romantic Relationship. Motorbike City Tour. Party Fun.
[Narrative] Immersive NPC Interactions.
Add @APKFreeDownloader_Bot to get any apk you want.
🆓REDEEM CODES🆓
🎁🕵️YuYu Hakusho:Slugfest Gift Codes
Redemption Begins 🎉on 7/23, at 7 PM (GMT+8)!!🔥✨
Use the exclusive codes below after the official release for amazing launch gifts: 200x Crystal Bead 💎, 20,000x Currency💰, 10x Omamori Enhancer🔮, and 1x Intermediate Enhancer🔮.
🎁#CODE 1:【 apkpure0723 】 (US Server)
🎁#CODE 2:【 apkpure2507 】 (US Server)
📍Pre-download begins on 7/22, at 6 PM (GMT+8)!
🕹Pre-register Now!!!
About YuYu Hakusho:Slugfest
Play as Yusuke (a young spirit detector) to track down and eliminate all evil demons and their human helpers and safeguard the human world from supernatural threats.
Add @APKFreeDownloader_Bot to get any apk you want.
#code
To me, high cognitive load reduces my code quality. In thoery, there are many tricks to reduce cognitive load, e.g., better modularity. In practice, they are not always carried out. Will chatGPT help? Let’s see.
https://www.caitlinhudon.com/posts/programming-beyond-cognitive-limitations-with-ai
Internet do'kon qilishda eng ko'p kerak bo'ladigan fungsiyalardan biri. Narxlarni foydalanuvchiga formatlab ko'rsatish fungsiyasi
const formatPrice = (price) => {
return price?.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
};
#code
☑️@valisherbotirov
🆓REDEEM CODES🆓
#Genshin Impact ✨October New #Code
👀Last Check: ⏳10/30!!!
Enter the Genshin Impact latest code 🎁【 GS61RD26W966 】🎁 for 20,000 moras✨🎁 and TONS MORE!!!
Genshin Impact October Codes: (All Active Codes!!)
👉【 MBEYNDLU3WGZ 】- 2K moras 💰💰💰
👉【 4S5RTSV3P5CC 】- 60 Primogems 💎💎💎
...
🔗#Genshin Active Codes (October 2025).
Add @APKFreeDownloader_Bot to get any apk you want.