Что делать если нужно поставить какую-то 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
📢Peercoin Now is Available for Trade on SLEX!🎉
🔗Dear SLEXians, we're excited to inform you that Peercoin is now officially available for trading on the SLEX Centralized Exchange's spot market!
🔹Coin: Peercoin (PPC)
🔹TradingPair: PPC/USDC
🚀Join SLEX Centralized Exchange, deposit and start trading Peercoin on spot market!
#SLEXUpdate#PeercoinTrading#SpotMarket#SLEXTrading#PeercoinOnSLEX
Email | Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
🎉 Syscoin (SYS) is now available on the SLEX Exchange! 🌟
🚀 Exciting news for all SLEXians: coin of the innovative blockchain platform Syscoin (SYS/USDT) is officially up for trading! This is a special listing because SLEX Exchange supports Syscoin UTXO, Syscoin Rollux, and Syscoin NEVM networks for spot market trading!
🔹Crypto: Syscoin
🔹Trading Pair: SYS/USDT
📈 Dive into trading Syscoin, enhance your portfolio, and boost your earnings with Syscoin (SYS\USDT) on the spot market at SLEX Centralized Exchange.
#SLEXUpdate#SYSUSDTTrading#SpotMarket#SLEXTrading#SYSUSDTOnSLEX
Website| Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
🎉 Memecoin (MEME) is Listed on SLEX Exchange! 🌟
🚀 Big announcement for the SLEXians: the much-anticipated mem-token, MEME/USDT, is now available for trading on the SLEX Exchange!
🔹Crypto: Memecoin
🔹TradingPair: MEME/USDT
📈 Buy, diversify your portfolio, and trade Memecoin (MEME\USDT) on the spot market on the SLEX Centralized Exchange.
#SLEXUpdate#MEMEUSDTTrading#SpotMarket#SLEXTrading#MEMEUSDTOnSLEX
Website| Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
📢 Shiba Inu is Now Available for Trading on SLEX! 🌟
🐕 Exciting news for SLEXians: trading pair of famous mem-token, SHIB/USDT, is now live on the SLEX Exchange. This opens up the opportunity for users to trade Shiba Inu in the spot market or leverage it for various long-term investment strategies.
🔹Crypto: Shiba Inu
🔹TradingPair: SHIB/USDT
🚀 Seize the opportunity to successfully trade SHIB/USDT after Elon Mask twits and boost your earnings on the SLEX Centralized Exchange.
#SLEXUpdate#SHIBUSDTTrading#SpotMarket#SLEXTrading#SHIBUSDTOnSLEX
Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
📢 Chainlink is Now Available for Trading on SLEX! 🌟
🔗 Great news for the SLEX Community! We are excited to inform you that the LINK/USDT trading pair is now available on SLEX Exchange. Users have the opportunity to trade Chainlink on the spot market or use it as part of a variety of long-term investment strategies.
🔹Token: Chainlink
🔹TradingPair: LINK/USDT
🚀Embrace the chance to trade LINK/USDT on the SLEX Centralized Exchange. Deposit now and begin your trading journey with this dynamic pair in the spot market.
#SLEXUpdate#LINKUSDTTrading#SpotMarket#SLEXTrading#LINKUSDTOnSLEX
Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
📢 Nelore Coin isNow Tradable on SLEX!🎉
🔗Attention SLEX Community, we're excited to share that Nelore Coin has been officially listed and is now open for trading on the SLEX, either for spot market trading or as part of your long-term investment strategy!
🔹Coin: Nelore Coin (NLC)
🔹TradingPair: NLC/USDT
🚀Join the SLEX Centralized Exchange today, make your deposits, and start trading Nelore Coin in the spot market!
#SLEXUpdate#NeloreCoinTrading#SpotMarket#SLEXTrading#NeloreCoinOnSLEX
Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
📢LanaCoin is Now Available to Trade on SLEX!🎉
🔗Dear SLEXians, we're thrilled to announce that LanaCoin has been officially listed and is now available for spot market trading or long-term strategies investment on the SLEX Centralized Exchange!
🔥
🔹Coin: LanaCoin (LANA)
🔹Trading Pair: LANA/USDT
🚀Join the SLEX Centralized Exchange, deposit, and start your LanaCoin trading on the spot market!
#SLEXUpdate#LanaCoinTrading#SpotMarket#SLEXTrading#LanaCoinOnSLEX
Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
🎉 Zcash (ZEC) is Now Listed on SLEX Exchange!🌟
🚀 Exciting news for all SLEXians: the highly sought-after cryptocurrency, Zcash (ZEC), is officially available for trading on the SLEX Exchange with two dynamic pairs!
🔹Crypto: Zcash;
🔹TradingPairs: ZEC/USDT & ZEC/BTC;
📈 Engage in trading, enhance your portfolio, and explore the possibilities with Zcash (ZEC\USDT & ZEC\BTC) in the spot market on SLEX Centralized Exchange.
#SLEXUpdate#ZECUSDTTrading#ZECBTCTrading#SpotMarket#SLEXTrading#ZECOnSLEX
Website| Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
🌐 New Popular Cryptocurrencies Now Live on SLEX Exchange! 🎉
🚀 SLEX has expanded our trading offerings with the addition of Injective (INJ), Arbitrum (ARB), and Gala (GALA)!
🔹 Cryptos Listed:
- Injective (INJ)
- Arbitrum (ARB)
- Gala (GALA)
🔹 Trading Pairs:
- INJ/USDT
- ARB/USDT
- GALA/USDT
🤑Trade these dynamic assets to boost your earnings and diversify your portfolio on the SLEX Centralized Exchange!
#SLEXUpdate#INJUSDT#ARBUSDT#GALAUSDT#SpotMarket#SLEXTrading#TradeOnSLEX
Website| Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
🌐Exciting New Crypto Listings on SLEX Exchange! 🚀
🎉Big news for traders! SLEX Exchange has broadened our horizons by including a diverse range of new cryptocurrencies in our trading portfolio.
🔹 Newly Listed Cryptos:
- BEAM (Beam)
- FIL (Filecoin)
- SNX (Synthetix)
- DYDX (dYdX)
- FET (Fetch)
- IMX (Immutable X)
- PEPE (PepeCoin)
- AMP (Amp)
- BLUR (Blur)
- SAND (The Sandbox)
💰Dive into trading new promising assets to amplify your earnings and broaden your investment portfolio on the SLEX Centralized Exchange!
#SLEXUpdate#PEPE#BLUR#AMP#SAND#IMX#FET#DYDX#SNX#FIL#BEAM#DiverseTrading#SLEXTrading
Website| Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter