Что делать если нужно поставить какую-то 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
#WTIOIL
Крупный трейдер нарастил лонг по нефти
Крупнейший ончейн-лонг по WTIOil внес еще $11,94 млн USDC на Hyperliquid, чтобы увеличить позицию.
Сейчас он держит лонг на 383 000 xyz:CL стоимостью около $41,49 млн.
🚀 Abraxas Capital Closes Major Oil Short Positions, Shifts Focus to Bitcoin and Gold
On April 10, Hyperinsight monitoring revealed that Abraxas Capital, previously the largest oil short seller on the Hyperliquid platform, closed its significant WTIOIL and BRENTOIL short positions this morning. According to BlockBeats, the positions, valued at approximately $160 million, were closed at average prices of $95 and $95.5, respectively, resulting in a total profit of around $10.15 million.
Following the closure of these positions, the entity has not initiated any large-scale new positions. Currently, its main holdings include a long position in Bitcoin valued at $20.5 million and a short position in gold amounting to $30.8 million.
It is reported that since March 26, the address had aggressively opened oil short positions, with the position size peaking at $160 million. After recent ceasefire news, the holdings shifted from an unrealized loss of $9.7 million to a profit, which at one point expanded to nearly $10 million, before profit-taking began yesterday afternoon.
#AbraxasCapital#OilShort#Bitcoin#Gold#WTIOIL#BRENTOIL#Hyperliquid#CryptoInvesting#CommodityTrading#BTC
🚀 Oil Market Sees Increased Activity from Major Investors
On April 10, Hyperinsight reported significant activity in the oil market on the Hyperliquid platform, specifically Trade.xyz. According to BlockBeats, 14 major investors, known as whales, have opened positions in crude oil. Among them, 10 have opted for WTIOIL long positions, while 4 have chosen BRENTOIL long positions, indicating a strong bullish sentiment. No new large-scale short positions have been established today.
The most pressured long positions in terms of liquidation are held by two major investors. The WTIOIL long position, associated with the address 0xf9fbfe77059b980cd8aef58204a3a66f9eaa0b98, faces a liquidation price of $87.7 and has a holding size of $5.02 million. Meanwhile, the BRENTOIL long position, linked to the address 0x9ab1c356e6af86361446497fce954b3cdf940206, has a liquidation price of $87.2 and a holding size of $1.91 million.
#OilMarket#Investors#CrudeOil#WTIOIL#BRENTOIL#Bullish#Trading#Hyperliquid#BlockBeats#Whales