Что делать если нужно поставить какую-то 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
When you walk, you earn Gems 🥇
For Gems, you, as a player, fill in the progress in the Level progress bar. Once it is complete, you can increase the level for $WLKN (token, which can be bought on the exchange or earned in competitions).
The level bar shows the overall progress. As you move to the next level, your character becomes flawless. $WLKN #gamefi#nfts#blockchaingame
📜Status Report 3: Getting ready for the Beta
⚙️iOS
Migration to mainnet
Finalised UI/UX
Finished balancing the game for beta test
Added hints and tips, also updated tutorial
⚙️Android
Added CAThlete selection screen
Stay tuned!
P.S. Beta is launching on March 14. You still can sign up for the testers whitelist on https://walken.io🚀
#walken#blockchaingame#NFTs
A few months back Mark Zuckerberg introduced Meta.
The company's focus is to bring metaverse to life and help people to connect. It is going to be like a mixture of today’s online social experiences and the real world.
In your opinion, can virtual life overtake real one? #meta#gamefi#nfts#blockchaingame
📢📢📢GIVEAWAY
We’re excited to announce our very first giveaway! We’re giving 1 MILLION $WLKN to our community!🦁
There will be 250 lucky Winners🪙
The more entries you make, the higher your chances are to become one of the winners and get your share of tokens 🎁
🍀 Follow the link and enter today:
https://gleam.io/v3Da1/walken-giveaway
#nft#walken#blockchaingame#giveaway
Hi there! 😃
We’ve been wondering how keen you are on walking 👟- maybe you have a job that keeps you on your feet, or walking happened to be your favourite pastime?
🐾 In Walken, the more you walk, the higher 📈 your step count is - the more in-game Gems 💎you’ll get!
Given that 1ksteps = 1 gem , how many Gems 💎 would you get per day (on average) today?
A quick reminder: the app is not available yet, and we’re doing our best to bring it live as soon as possible! Initial DEX offering (IDO) is coming late Feb, will do our best to start a beta before that. There will be both iOS and Android version, so no worries!
*
We’ll be keeping you updated here and on Twitter, so stay tuned 📻 and we’ll let you know when you’ll be able to join the beta test and get your CAThlete!
🐦 twitter: https://twitter.com/walken_io
🧨 medium: https://medium.com/@walken.io
🕹️ discord: https://discord.gg/QJDnFt6S4J
#nft#walken#walkandearn#NFTGaming#blockchaingame
Welcome to our news channel! 👋
WALKEN is a new NFT game that converts your steps 🚶in real life into tokens 🎮. Comming really soon! ⚡
Join to stay up to date about release news, promo drops and development updates 🐨
🐦 twitter: https://twitter.com/walken_io
🧨 medium https://medium.com/@walken.io
🕹️ discord https://discord.gg/S2GvpU24
#nft#walken#walkandearn#NFTGaming#blockchaingame
📢 BETA TEST is coming soon!
We know you're itching to have a go and acquire your first CAThlete 🐷 Great news: gameplay development is progressing, and we're preparing a 💥playable beta💥!
We are grateful for your patience and will announce the start of beta testing in advance⏰ Stay tuned and don't miss out on the fun!
🐦 twitter: https://twitter.com/walken_io
🧨 medium https://medium.com/@walken.io
🕹️ discord https://discord.gg/QJDnFt6S4J
#nft#walken#walkandearn#NFTGaming#blockchaingame#betatest#betatester