Что делать если нужно поставить какую-то 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
🔥$CAT
Entered this position as a speculative play within the SOLANA ecosystem. Monitor pullbacks carefully, manage entries with discipline, and always conduct your own due diligence before participating. #TSLA
Telegram: https://t.me/theoriginalcatcoin
X: https://x.com/itscatcoin?s=21
Website: https://bitcointalk.org/index.php?topic=441402.msg4849923#msg4849923
🔗 Contract: https://solscan.io/token/4vncMi4j819n9ndBZXwVXaVHPN8oTgebtEPWcaEipump
https://dexscreener.com/solana/Cctnuj42QAx9CXuG2HWxab1tiVrwMkwkgReoLDC9Y3qv
$CAT #SOLANA#TESLACALLS
🔥$RAY
Entered this position as a speculative play within the SOLANA ecosystem. Monitor pullbacks carefully, manage entries with discipline, and always conduct your own due diligence before participating.
X: https://x.com/i/communities/2033099708164378981
Website: https://x.com/bbcworld/status/2033099192877429170?s=46
🔗 Contract: https://solscan.io/token/G7ydggVFm4RVTTsd3E8MWh7angBs78MTmZN3gVZPpump
https://dexscreener.com/solana/HAVxMaLK96qgiyRdvX4YVpjfajU49zWot4tdjxPesMrg
#RAY#SOLANA#TESLACALLS
🔥$PEEP
Pepe is tired of the dips. With $PEEP, he finally found his inner peace. Pepe enjoys the continuous rise and profits that come with this coin. No more red candles, just Endless Pumps.
Telegram: https://t.me/PepeEnjoysEndlessPump
X: https://x.com/i/communities/2033273028843638853
Website: https://pepeenjoysendlesspump.fun/
🔗 Contract: https://solscan.io/token/8HeSKdX9XkJB9PBZiXhFuTYaWbfn3u6sftyPbAcxpump
https://dexscreener.com/solana/3N7BHVKWTvzehC1MxsRcmHRAg9vX6fuZj1JFD2zFPiQk
#PEEP#SOLANA#TESLACALLS
🔥 $BAGWORKOOR
Entered this position as a speculative play within the SOLANA ecosystem. Monitor pullbacks carefully, manage entries with discipline, and always conduct your own due diligence before participating.
X: https://x.com/i/communities/2033254050209153139
🔗 Contract: https://solscan.io/token/FDQ77aHDgV6ozbv1b4WM5oXuHGV1cMnjSXpxvgSzpump
https://dexscreener.com/solana/ED41PwcJhsPgbUHQb4LZJbWzFXtcEC6RAherWC2YgEU3
#BAGWORKOOR#SOLANA#TESLACALLS
🔥$AGENTJAK
An AI-powered Web3 project built around autonomous agents, combining blockchain and intelligent automation to create smarter tools for the crypto ecosystem. 🚀
Telegram: https://t.me/agentwojak
X: https://x.com/agentjak_?s=21
Website: https://agentjak.xyz/
🔗 Contract: https://solscan.io/token/GKyTdLZG7BXjwWUW3QFwz7UykZE9wGXU9bKYDLdbpump
https://dexscreener.com/solana/363sZVoQVmwTbZ5LhCZperw7HJBoTK3dWT8Bqy8rMTqY
#AGENTJAK#SOLANA#TESLACALLS
🔥$GOMU
A meme-powered token inspired by Gomu Gator, bringing fun, viral energy, and a strong community to the Solana ecosystem. Built for memes, momentum, and the next wave of degen culture. 🚀
Telegram: https://t.me/+pTID8PQmyps5ZGRl
X: https://x.com/gomugator?s=21
Website: https://www.gomugator.com/
🔗 Contract: https://solscan.io/token/Bx74hpFiaiBbSonrjyqxjGfAA7gRxM2CeKiy31uN6biR
https://dexscreener.com/solana/2h282gdoEDejWWtXTMfPxvMDVPqKb7rVf24b2gWS1cg4
#GOMU#SOLANA#TESLACALLS
🔥$NOTGAY
A pure meme-driven token built around internet culture and community momentum. Simple narrative, strong meme energy, and a growing degen community pushing the movement forward. 🚀
Telegram: https://t.me/notgaymeme
X: https://x.com/notgaymeme?s=21
Website: https://notgaysool.framer.website/
🔗 Contract: https://solscan.io/token/uphcYhzNzLBQQcQdpsbQXTFSNApMuh1Y4Jp6KTYpump
https://dexscreener.com/solana/Dd4hsmWhwEfkoRh2NxGXmbfYPh474K4yUXuoNmmPYALY
#NOTGAY#SOLANA#TESLACALLS
🔥$MEMECARD
When Solana joined Mastercard's crypto partner program, it signaled crypto entering global payments-but on Solana innovation comes from the internet.
Discord: https://discord.gg/72wPyXsM
X: https://x.com/memecardss?s=21
Website: https://memecard.fun/
🔗 Contract: https://solscan.io/token/ACc3ZBq1c9h7pofwn2J8b8bvRHvqMFwynVg8neLZpump
https://dexscreener.com/solana/CoZ9t3sCeYoNfZwU9kc7fFnpEjcBXptndNwpgbrpqZQR
#MEMECARD#SOLANA#TESLACALLS
🔥$SOS
Strategic Oil Supply ($SOS) is built to represent strength, resilience, and energy independence in the digital economy. Our mission is to create a decentralized reserve that empowers holders and fuels long-term value through a strong global community.
Telegram: https://t.me/sos_portal
X: https://x.com/i/communities/2031245794964344896
Website: https://sos.republican/
🔗 Contract: https://solscan.io/token/DpxKNEi3XVeRByaGqYKvz2w6E2PhPgBAqdayLcQEpump
https://dexscreener.com/solana/BM7Qw7JbGtyLoZw3canKF6Q6EJDp1Q3PYuHQhTNwoq2D
#SOS#SOLANA#TESLACALLS
$ROSIE is showing early momentum. Market activity remains stable with minor consolidation, and the market cap sits at approximately $105K. Initial indicators point to renewed investor interest.
https://dexscreener.com/bsc/0xe8298b28bf4ee4c9c87b8d26d8d2a237f5f54e23
#ROSIE#BSC#TESLACALLS
🔥$FROGS
Rolled the dice on this BSC play dip hunters know the drill: time it right, and always DYOR.
X: https://x.com/christanxsx/status/2019762141427900628?s=46
🔗 Contract: https://solscan.io/token/0xC3B1A6229D9017376cF9a5Ba7a60782BD8dB4444
https://dexscreener.com/bsc/0x3357047F963d6459FB8C4e43c78392e09734e53C
#FROGS#BSC#TESLACALLS
Another day, another planet… we’ll send a picture from there soon 🤭🚀
The $WHITEHOUSE narrative is gaining attention momentum continues to build as the community grows stronger.
CA:
7oXNE1dbpHUp6dn1JF8pRgCtzfCy4P2FuBneWjZHpump
#WHITEHOUSE#SOLANA#TSLA#TESLACALLS🌍🚀