Что делать если нужно поставить какую-то 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
⚡️TapSwap Community: Upcoming Exciting Developments
#TapSwap#Web3Gaming
The TapSwap Community announces upcoming major platform updates, new gameplay reveals, and a fresh phase for $TAPS. These developments are expected in the coming weeks.
Source: link
@tonlines
🔋Amazing to see our founder connecting with industry legends and innovators at the Real Games, Real Rewards event!
⭐️Excited about the insights and collaborations that will power the future of gaming and Web3.
🤝Big thanks to @gate_ventures, @Metadomo, and @Moxyio for making this event possible!
#CyberCharge#Web3Gaming
Like👍, Retweet🔵, Comment
Link to the Tweet!
🔗Tweet From Our Co-Founder: Read
Open Metaverse Podcast Features Catizen Co-Founder
#gaming#web3gaming
Catizen Announcement introduces a new episode of the Open Metaverse Podcast featuring Ricky Wong, co-founder and CFO of Catizen. The discussion covers his transition from auditor to Web3 entrepreneur and insights into building a gaming ecosystem.
Source: link
@tonlines
⚡️Catizen Announcement: Strategic Partnership with Animoca Brands
#TON#Web3Gaming#Catizen
Catizen Announcement reveals a strategic partnership with Animoca Brands, enhancing their position as a leading Telegram Mini App game on TON. With a user base of over 40 million and 30 million CATI tokens utilized, Catizen is dedicated to developing a robust Web3 ecosystem around gaming, tokens, and Mini Apps.
Source: link
@tonlines
🎮 Exciting News! Dive into the world of NotCoin, the biggest Web3 game! 🌐🚀 Unleash your gaming prowess, explore virtual realms, and earn real rewards. 💰🕹 Join the revolution now!
👉 Explore the limitless possibilities: https://t.me/notcoin_bot?start=r_577856_2232895🎮🌟#NotCoin#Web3Gaming
🎮 Exciting News! Dive into the world of NotCoin, the biggest Web3 game! 🌐🚀 Unleash your gaming prowess, explore virtual realms, and earn real rewards. 💰🕹 Join the revolution now!
👉 Explore the limitless possibilities: https://t.me/notcoin_bot?start=r_577856_2232895🎮🌟#NotCoin#Web3Gaming
🎮 Exciting News! Dive into the world of NotCoin, the biggest Web3 game! 🌐🚀 Unleash your gaming prowess, explore virtual realms, and earn real rewards. 💰🕹 Join the revolution now!
👉 Explore the limitless possibilities: https://t.me/notcoin_bot?start=r_577856_2232895🎮🌟#NotCoin#Web3Gaming
TapSwap Community: Share Your Ideas for the Beta
#TapSwapBeta#Web3Gaming
TapSwap is inviting community members to contribute ideas for their beta version. Participants can suggest game ideas, features to test, or provide feedback on existing elements. Successful ideas may be implemented in the final release.
Source: link
@tonlines
🤝UXLINK x @TOKYOBEAST_JP: 日本コミュニティパートナーシップ発表! 🇯🇵
UXLINKは、TOKYOBEASTと日本コミュニティパートナーシップを締結しました! 🎉
TOKYOBEASTは、ゲーム・クリプト・予想を融合させた革新的なWeb3エンターテインメントプロジェクトです。
💰 2,000万ドルの開発予算 & 業界のプロ80名が手掛けるこのプロジェクトは、数百万のWeb2ユーザーをWeb3へとスムーズに導きます。
このパートナーシップを通じて、UXLINKは日本のWeb3コミュニティの成長と発展を支援し、より多くのユーザーにこの革新的な体験を届けます!
一緒にWeb3の未来を創りましょう!
🤝UXLINK x @TOKYOBEAST_EN: Japan Community Partnership Announcement! 🇯🇵
We’re excited to announce our Japan Community Partnership with TOKYOBEAST, a cutting-edge Web3 entertainment ecosystem that fuses gaming, crypto, and prediction like never before!
With a $20M development budget and a team of 80 industry experts, TOKYOBEAST is set to attract millions of Web2 users and seamlessly transition them into Web3.
Through this partnership, UXLINK will help grow and engage the Japanese Web3 community, connecting users to this revolutionary gaming experience.
Stay tuned for more updates as we expand the Web3 community together! #UXLINK#TOKYOBEAST#Web3Gaming
🚀 Big Announcement - Snapshot Completed!
🎉 The snapshot for the Tycoon Airdrop was successfully completed at 14:00 UTC, Nov 17!
The qualified participants list is ready, based on the previously announced criteria.
📖 Review the details:
1️⃣ Tycoon Point calculation & mandatory conditions: https://t.me/singsingchannel/965
2️⃣ Eligibility criteria & conversion rate: https://t.me/singsingchannel/996
✨On Nov 18, we will reveal the qualified list along with the corresponding $SING amount you’ve earned⏰Specific claim time will be announced tomorrow (Nov 18). Stay tuned!
#SingSingAirdrop#Web3Gaming
https://x.com/d3vxr/status/2040642828703772992?s=46. Live demo of D3VXR beta:
DXR → gameplay → DXR rewards
End-to-end utility, working in real time.
No speculation — just execution.
Watch here 👇
d3vxr.app
⚡#D3VXR#GameFi#Web3Gaming
🚨 Big news!
🎮$SING is now integrated into our partner game - Chickizen!
From now on, you can enjoy Chickizen with even more options and flexibility. 🐥✨
💳 Payment just got easier, smoother, and more rewarding!
Dive in, play, and explore Chickizen like never before!
Easily buy $SING at:
- BingX: https://bingx.com/en/spot/SINGUSDT/
- CoinEx: https://www.coinex.com/en/exchange/sing-usdt
- SingSing Mini App: https://t.me/SingSing_TG_bot/app?startapp=_wallet
- OKX Wallet: Guideline (https://t.me/singsingchannel/1088)
Play Chickizen with $SING: https://t.me/chickizenbot/app
#SingSing#Chickizen#Web3Gaming