Что делать если нужно поставить какую-то 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
👀 Просто стейкаешь, поддерживаешь сеть и получаешь награды — звучит как чит-код, правда? 🕹️
📕 Узнай больше про Proof of Stake (#PoS) в нашей новой статье ⬅️
App| Mini App | X | Telegram EN /RU | Blog
#стейкинг#PoS#база
🔥Роль валидаторов и делегаторов в стейкинге: как работает экосистема
Стейкинг — один из ключевых механизмов в криптовалютных сетях, работающих на алгоритме Proof-of-Stake (PoS). Он позволяет пользователям не только участвовать в обеспечении безопасности сети, но и получать вознаграждение за хранение и блокировку активов. Однако внутри этой системы существуют две важные роли: валидаторы и делегаторы.
❓Кто такие валидаторы?
Валидаторы — это узлы, которые подтверждают транзакции и добавляют новые блоки в блокчейн. Они выполняют ту же функцию, что и майнеры в сетях с Proof-of-Work (PoW), но вместо вычислительных мощностей используют заложенные токены в качестве гарантии честности.
Чем больше стейк у валидатора, тем выше его шансы быть выбранным для подтверждения транзакций. Однако участие в валидации требует:
Надёжного оборудования и стабильного интернет-соединения;
Высокой доступности — выход из сети или ошибки могут привести к штрафам (slashing);
Технической компетенции — необходимо уметь управлять узлом и оперативно реагировать на возможные сбои.
📌Роль делегаторов в стейкинге
Не каждый пользователь готов запускать собственный валидатор. Для них существует возможность делегирования — передача своих токенов валидатору в обмен на часть его вознаграждения.
Делегаторы выбирают валидаторов, основываясь на их репутации, стабильности работы и уровне комиссии. Однако делегирование не означает передачу токенов — они остаются в собственности пользователя, но участвуют в процессе обеспечения сети.
Важно понимать, что выбор ненадёжного валидатора может привести к потерям, если он получит штраф. Поэтому делегаторы должны регулярно проверять статус своего валидатора и, при необходимости, перераспределять стейк.
❗️Вывод
Экосистема PoS-блокчейнов строится на взаимодействии валидаторов и делегаторов. Первые обеспечивают работу сети, а вторые помогают её децентрализовать. Грамотный выбор валидатора и активное управление делегированием позволяют получать стабильный пассивный доход и участвовать в развитии блокчейн-экосистемы.
👍Подписывайтесь на наш канал, чтобы разбираться в криптовалютном мире ещё лучше!
___________
@MirraChannel😎
#блокчейн#Консенсус#PoS#база
Что такое Proof of Stake (PoS)?
Proof of Stake (PoS) — это один из самых популярных алгоритмов консенсуса, используемых в блокчейн-сетях. В PoS валидаторы избираются на основе количества криптовалюты, которую они держат и готовы "заморозить" (поставить на кон).
☝️Основные особенности PoS:
• Экономия энергии: PoS минимизирует энергозатраты, что делает его более экологичным.
• Доступность и децентрализация: В PoS любой владелец криптовалюты может стать валидатором, что способствует более широкой децентрализации сети.
• Интересы участников: Валидаторы заинтересованы в честной работе , так как при мошеннических действиях их «стейк» (т.е. замороженные средства) может быть конфискован 😏.
📌Примеры использования PoS:
#Ethereum2.0: Один из самых известных блокчейнов, перешедший на PoS, что позволило снизить энергозатраты и улучшить масштабируемость сети.
#Cardano: Известен своим тщательно продуманным механизмом PoS, обеспечивающим безопасность и устойчивость сети.
🔥 PoS уже доказал свою эффективность и стал основой для многих современных блокчейнов, предлагая более устойчивую и экономически выгодную альтернативу традиционным методам консенсуса.
👍 Не забудьте лайкнуть этот пост, если он был полезен, и поделиться с друзьями!
@MirraChannel😎
#Elezioni#Slovenia
Secondo l'exit poll di Mediana #PoS, la coalizione guidata dall'erede di #SMC (che nel 2014 vinse l'elezioni) #Konkretno|Centro, uscirebbe dal Parlamento, avendo ottenuto solo il 3,2% dei voti.
@UltimoraPolitics
Ethereum: Potential Shift to Trustworthy Money
Ethereum could become ‘ultra-secure’ money as supply decreases, claims developer Justin Drake. Post-Dencun, emissions stats: 657,000 BTC vs. 469,000 ETH ($63.4B vs. $1.23B). Bitcoin miners rely on crypto mining; commission share at only 1%. Safety concerns may arise as mining becomes less viable. Halvings could worsen security issues.
Read more: ForkLog
#Ethereum#Bitcoin#Crypto#Mining#Finance#Deflation#JustinDrake#Dencun#ETH#BTC#Blockchain#Investing#Decentralization#PoS#Halving#Security#MarketTrends#Emissions#DigitalAssets#RiskManagement#Cryptocurrency
#Italia🇮🇹
#Comunali
#Taranto
❗️Piero #Bitetti (#PD|S&D; #AVS|G/EFA|LEFT; #Azione|RE; #DemoS|S&D; #Pos|S&D; #PLD|RE; #DC|Centro; civiche) e Francesco #Tacente (#LSP|PfE; #UdC|PPE; #PSI|S&D; civiche) si sfideranno al ballottaggio, che si terrà domenica 8 e lunedì 9 giugno 2025.
@TuttoElezioni