Что делать если нужно поставить какую-то 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
🪂Airdrop ~ Shiba Inu (SHIB)
💲Reward: 150 Million #Shiba inu
💎 Presents Ratings: ⭐️⭐️⭐️
👑Winners: 1,000 Lucky winners
➡️ Airdrop Page For Coingabbar
📚 How to Join Airdrop?
↪️ Signup at Coingabbar & Verify your Email to get 100k Cubs
↪️ Submit earned cubs for conversation, (1 Cub = 2 SHIB)
Earn More Cubs
Download the Android App/ IOS App
✏️Notes: Make sure to complete all tasks to receive rewards.
ℹ️Distribution date: Will be announced by the project team after 28t-h January.
Look at #SHIBA now! 💰🔥
Went from2,590%to 4,135%, that's 1,545% extra profit just by holding it a bit more
A nice 41X return from this single Signal⭐
🔸$50 would return $2,060💸
💰$50 would return $1,375💸
Enjoy 4,100% profit🆙. 🤝Congratulations allPremium Members. Now imagine if you followed the rest of the signals.. 🤑💯
We keep printing money, day after day 💯
Don't miss out - join us and start sending those gains to your bank 👇
@Kevindexter✅
💰#SHIBA just smashed
2️⃣
5️⃣
🔠gains!Another big win, no surprise there 😌
It's business as usual - every day, like clockwork, we are in the fast lane, leaving the competition eating our dust 💰💸
We keep printing money, day after day 💯
Don't miss out - join us and start sending those gains to your bank 👇
@Kevindexter✅
🐶 .Shizarium is getting ready for hardcore with a new version of Bor.
🧡The update will add a burning mechanism: 70% of the base fees will be converted into $SHIB tokens and removed from circulation, which may increase their price. The rest of the fees will be used to develop the ecosystem.
💡 And also announced the launch of #Shiba Eternity #Web3.
#SHIBA INU eBAY || THIS COMPANY ACCEPT CRYPTO || GET READY ✌🏻
#cryptogemtokenshttps://cryptogemtokens.com/shiba-inu-ebay-this-company-accept-crypto-get-ready-%e2%9c%8c%f0%9f%8f%bb/
The Perfect Shiba Inu — 中号
Introducing Naka Go, the foundational dog behind this breed’s revival.
$NAKA
CA (Ethereum):
0x956220463DE0e1d7E3D5Da4ab1f8cA15E1e0aB0B
#NAKA#SHIBA#ETH#TSLA#TESLACALLS🐕🚀
💰Bullish on #TRUMP
Short term : $21 - $27
Long term : $48 - $79
The main character of meme world this stage.
If you missed
#Doge 2020 💰/ #Shiba 2021 💰/
#Bonk 2023 💰/ #Pepe 2024 💰,
you are going to miss #Trump 2025 💰
🥸 Above is a 10-year chart of significant #altcoins and the number of non-empty wallets (#hodlers) in the corresponding networks: #Litecoin: 8.08M wallets #Dogecoin: 6.69M wallets #XRP Ledger: 5.24M Wallets #Cardano: 4.48M Wallets #Shiba Inu: 1.39M wallets #Chainlink: 722K wallets
Данные от Santiment: 10 крупнейших кошельков удерживают значительные доли в крупнейших альткоинах, что подчеркивает проблему централизации в крипте:
#Polygon (MATIC): 69.4%
#Shiba Inu (SHIB): 61.2%
#Uniswap (UNI): 50.8%
#Pepe (PEPE): 46.1%
#Ethereum (ETH): 44.0%
#Tether (USDT): 33.1%
#Chainlink (LINK): 31.1%
#Toncoin (TON): 27.5%
#Multi Collateral Dai (DAI): 24.5%
#USD Coin (USDC): 19.0%
💬Мнение : Такая концентрация может повлиять на рынок, так как несколько крупных игроков могут существенно влиять на цену и ликвидность этих активов.
#КриптоНовости#обзоррынка