Что делать если нужно поставить какую-то 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
#OPENSEA
It seems OPENSEA is getting ready for a token airdrop
Here’s the link to the post
🟠The project has launched a Twitter account called OpenSea Foundation, indicating a token drop is imminent.
Have you traded on this marketplace? Are you planning to take advantage now?
Crypto Drop Club 👉 SUBSCRIBE
🚀🥚 A Grand Event in the world of Eggs Wisdom!
We are thrilled to announce that the first 100 exclusive NFT Eggs out of a total of 5000 from our project are now available on the 💰#Openseaplatform.
Each egg is a unique creation, full of wisdom, and will make a wonderful addition to your NFT collection.
🤩 Special offer! The first 10 Eggs can be purchased for just 0.0055 ETH💰 each. It's an opportunity not to be missed!
Become part of our growing community and help us fully unleash our collection of wisdom eggs!
Let's gooooo🚀
@EggsWisdom
GetGems \Opensea
Introducing Harpie: The Ultimate Web3 Antivirus by Coinbase 🛡
Backed by #Coinbase, #OpenSea, etc.
Coinbase, a hub for bullish traders, often sparks significant price surges with its listings—sometimes even outshining Binance's impact.
🚀 Harpie, a Web3 gem, fortifies your wallet security with a $4.5 million investment backing and Coinbase's expert guidance. Dive into farming Harpie Points now for a future airdrop!
🔍 𝗛𝗼𝘄 𝘁𝗼 𝗝𝗼𝗶𝗻:
🌟Explore https://harpie.io/airdrop
🌟Connect your $ETH wallet (other airdrop wallet)
🌟Link Twitter for rewards
🌟𝗘𝗻𝗴𝗮𝗴𝗲 𝗶𝗻 𝗱𝗮𝗶𝗹𝘆 𝘁𝗮𝘀𝗸𝘀
‼️ Do not connect the main wallet because you do not connect your main voltage to every site. Connect the wallet to which you connect every airdrop (DYOR)‼️
𝙅𝙤𝙞𝙣 𝙪𝙨 𝙚𝙖𝙧𝙡𝙮 𝙞𝙣 𝙩𝙝𝙞𝙨 𝙧𝙚𝙫𝙤𝙡𝙪𝙩𝙞𝙤𝙣𝙖𝙧𝙮 𝙟𝙤𝙪𝙧𝙣𝙚𝙮. 𝙒𝙚 𝙝𝙤𝙡𝙙 𝙩𝙝𝙚 𝙠𝙚𝙮 𝙩𝙤 𝙞𝙩𝙨 𝙨𝙪𝙘𝙘𝙚𝙨𝙨! 💪
🗣#SOLANA#OPENSEA
Submit your Solana wallet address to get a potential drop from OPENSEA
Deadline: TBD
What to do:
✔️ Visit this link
✔️ Comment your Solana wallet address
🟠 Take advantage while you can, there may be something valuable coming
☝️ Start trading on Bybit
Crypto Drop Club 👉 SUBSCRIBE
It’s not great to think about the past
But here’s a reality check: the floor price for Resolv Blueprint #NFTs – which you might have got for FREE – is 0.4 ETH on #OpenSea now
Next time you see an offer on ScoreFront, maybe don’t sleep on it?
🔗Explore ScoreFront Offers👈
💠Nomis tApp | X | Discord | YouTube | Check Scores⚖️
🎙Defybirds
👉Our team rating 8/10 ⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
A Moonbird morphs with a Monster. Fear the monster and proceed into the moonlight with great caution. The night is full of whispers, Oddities, and creatures of flight
This collection of 3000 Defybirds is available to all Nudebirds—Moonbirds without additional attributes/traits—who were nested March 8 and selected Des Lucréce holders. delegate.cash will be enabled. You will be able to check here to see if your Moonbird is eligible and with a claim still available.
✅Price now: 0.20 ETH 🔜 1 - 2 ETH 🔝🏆
✅ Total NFT: 3000
Opensealink: https://opensea.io/collection/defybirds
#NFT#Opensea#Promotion#Listing
🚀 Get ready for the SingSing NFT Trading Contest! 🏆
📝 Eligibility: Participants need to log in to Opensea with their SingSing Mine Ruby Wallet to trade Treasure NFTs and Pioneer NFTs.
🔢 Point System:
- Buyers: 3 points per 0.0001 ETH purchase ( Buyers will receive points equal to 30,000 times the purchase price of the NFT).
- Sellers: 1 point per 0.0001 ETH sale ( Sellers will receive points equal to 10,000 times the sale price of the NFT).
📅 Duration: 7:00 AM July 19th - 17:00 Jul 26 (UTC)
💰 Prize Pool: 0.1 ETH split among the top 10 participants based on their points percentage.
For example, if the total points of the top 10 are 100 and you have 10 points, then you would receive 10 / 100 = 10% of 0.1 = 0.01 ETH.
🎉 Results: Announced within 72 hours after contest ends. You can claim your rewards after that.
Read More and Open Treasure at: X Post
#NFT#Contest#SingSing#OpenSea#Crypto
🔥 The NFT trading competition is hotter than ever! 🔥
Reminder: Only transactions made through OpenSea will be counted. 🛳️
Tips: You should use OKX wallet mobile app to make it easy🚀
Follow the guideline and join the excitement! 📈✨
#NFT#TradingCompetition#OpenSea#NFTCommunity
🎭 Oscar-Winning Rapper #Eminem Purchases Bored Ape no. 9055 from Bored Ape Yacht Club (#BAYC) #NFT collection for 123.5 ETH or $462,000!
Eminem's NFT collection on #OpenSea: https://prs.pctvix.co/3FNaKdS
🦅@perspectiveix
#активности#ZORA#ECLIPSE#TOWNS#OPENSEA
Активности, которые перестаём делать, потому что вышли заявления от проектов о дропе:
1. Zora ранее заявил о том, что будет дроп активным участникам, не раскрыв критерии.
В таком случае, тратить средства на активность в нём = лотерея, поэтому перестаю проявлять активность в Zora.
2. Eclipse недавно на своих AMA раскрыл подробности дропа.
В таком случае, тратить средства на активность в нём = лотерея, поэтому перестаю проявлять активность в Eclipse.
3. По такой же причине перестаю делать активности в проекте TOWNS.
4. Скипаю изначально активности в Opensea, тк:
1) Они изначально заявили, что будет дроп за поинты = лотерея, если тратите средства
2) Они запустили торговлю ещё и токенами(в основном мемами), поэтому скорее всего фетву их токен получит "харам".