Что делать если нужно поставить какую-то 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
🦄 V3 DEXes featuring concentrated liquidity & dynamic fees powered by Algebra are taking over! 💪
Shoutout to SuperSonic DEX, the advanced DEX built natively on Sonic Labs (fka #Fantom) with Algebra's groundbreaking V3 AMM. 🤖🔧
⚡️ Get ready for up to 95% efficiency soon on the Sonic Network!
🎉🎄НОВОГОДНИЕ УТРЕННИКИ В ПОДРАЗДЕЛЕНИИ СЛУЖБЫ ПСИХОЛОГО-ПЕДАГОГИЧЕСКОГО И МЕДИКО-СОЦИАЛЬНОГО СОПРОВОЖДЕНИЯ! 🎉🎄
Хотим поделиться с вами замечательной новостью! В нашем подразделении службы психолого-педагогического и медико-социального сопровождения началась серия ярких и волшебных новогодних утренников! 🎄🎁
Наши талантливые педагоги показали театральную зарисовку «Сказочный хоровод». Дети получили море положительных эмоций и незабываемые впечатления. Атмосфера праздника, радости и веселья царила на протяжении всего мероприятия.
Украшенный зал, яркие костюмы, сверкающая ёлка, Дед Мороз со Снегурочкой и, конечно же, долгожданные подарки – всё это создало ощущение настоящего новогоднего чуда. 🌟🎉
Выражаем благодарность Установочному центру Fantom, который оказал благотворительную помощь в приобретении новогодних подарков для детей.
#fantom
https://vk.com/fantom_tmb
The #FantomHackathon Q1 2023 was a huge success! 🎉
Winners include familiar faces, plus introduce many new projects to the #Fantom ecosystem 🏆⤵️
🥇 $10k @EstforKingdom (#GameFi)
🥈 $7.5k Rezy (recycling)
🥉 $5k Hazed (privacy)
Congrats all! Full list: https://fantomq12023.devpost.com/project-gallery
https://twitter.com/FantomFDN/status/1638988754659713024?s=20
✉️ Nomis x EYWA Protocol: Real utilities for the real DeFi guys
Meet EYWA Reputation Score: Prove Your Cross-Сhain Activity and Be Eligible For the Airdrop
SCORE YOUR WALLET TO START FARMING
We've partnered with EYWA, the cross-chain trading powerhouse that aggregates Curve Finance pools, to ensure airdrops go where they're earned—right to real degens like YOU 🫵
🖥HOW TO GET STARTED:
1. Visit THE SCORE PAGE to get your Score
2. Go to THE SWAP PAGE
3. Make cross-chain swaps using EYWA and farm extra points
4. Check your total points HERE
5. Wait for the airdrop date to be revealed!
🔝 In the meantime, make more swaps, increase your EYWA Score, and farm points!
➡️HOW TO BOOST YOUR SCORE:
Make swaps across #Ethereum, #Optimism, #BSC, #Polygon, #Fantom, #Arbitrum, and #Avalanche
The higher swaps volume, the higher your Score!
➡️HOW TO GET MORE POINTS:
The higher your Score, the bigger rewards!
🚨 EXTRA REWARDS TIPS:
• Score < 60: Earn 15 points per Score
• Score 60-80: Earn 18 points per Score
• Score 80+: Earn 20 points per Score (max 2000 points)
It seems like we've covered all the questions 🧐 Missed anything? Reach out in the comments!
And now...
Get in, Get yours, LFG⚡️
Bitcoin Caps and Central Banks
🌍 *Salvador Nasralla*, Honduras' leading presidential candidate, recently wore a Bitcoin cap in an interview.
💬 *Michael Saylor* claims Bitcoin at $100,000 is still a 90% discount.
📉 In a dramatic case on Chinese Twitter, a recent fight between a BTC whale and founder of Solv Protocol led to the creation of the *ZachAI* ($ZAI) token, with the whale dumping on followers post-launch.
🇨🇿 Czech Central Bank is considering BTC as a reserve asset.
🔥 50 million USDC burned at USDC Treasury.
🏗️ President-elect Trump announces $20 billion investment in new data centers in the U.S.
#Bitcoin#BTC#Crypto#USDC#Solv#AI#ZAI#CzechRepublic#Honduras#Investment#Trump#DataCenters#Curve#Treasury#Ethereum#Blockchain#CryptoWhale#Fantom#Sonic
📰 CRYPTO NEWS
🆕️The founder and CEO of #CryptoQuant stated that compared to the previous cyclical peak, the fundamental elements of the bitcoin network can maintain a market value three times higher than the current one. He considers it "possible" to "keep" the bitcoin price at $265,000.
🆕️As part of the presale, #WATER raised $41 million. Which also makes WATER the largest Memecoin pre-sale to date, with over 26,000 wallets participating. The team has regained control of its account in X.
🆕️50 Cent's #Twitter account was hacked in order to promote the Solana Meme Coin.
🆕️Internet Computer will launch the #ICP Hub Accelerator Program 2024, which aims to help early blockchain projects transform their concepts into market solutions, create a strong blockchain innovation ecosystem and promote technological progress in the ICP community.
🔹 21 million #LINKS ($295 million) of non-convertible Chainlink contracts have been unblocked today.
🆕️DAO Osmosis supports a commission-free bridge for transferring bitcoin to the #Cosmos ecosystem.
🆕️Scroll ZKP presents "Scroll Sessions", a loyalty program to reward the Scroll Marks community for their participation and involvement in the #Scroll ecosystem.
🆕️Arbitrum introduces the "Layer Leap", a single-stage bridge from L1 to L3 for the #Orbit ecosystem.
🆕️#Reef plans to launch a new product on June 26.
‼️ Dogwifhat Whales dropped #WIF by 16 million in a week.
🆕️#Fantom has released #Sonic's third management offering, which includes an annual token destruction mechanism, as well as the launch of Sonic Spark and Sonic University.
🆕️#Bluefin announces integration with Wormhole Connect. The Wormhole community will participate in the future release of Bluefin tokens.
🆕️#StacksNakamoto has announced the completion of 90% of the work on the project and is preparing for the official launch on July 15. The Nakamoto Stacks update should increase the transaction speed to 5-10 seconds, which is about 100 times faster than the current speed. ➡️ This is a significant event for the Stacks project and the Bitcoin ecosystem, will improve the speed, overall efficiency and scalability of Layer2 on #Bitcoin, promising faster and more efficient transactions for users.