Что делать если нужно поставить какую-то 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
🚢Цены на газ в Европе возвращаются к пиковым уровням на фоне ударов по инфраструктуре.
Стоимость апрельского фьючерса на хабе TTF в Нидерландах выросла до $854 за тыс. куб. м (€72/МВт·ч), впервые достигнув уровней зимы 2022/2023 годов. За день котировки прибавили более 30%, увеличившись почти на $200.
Резкий рост связан с ударами по газовой инфраструктуре на Ближнем Востоке, что усилило опасения перебоев поставок и спровоцировало реакцию рынка на риск дефицита.
С операционной точки зрения, рынок газа вновь входит в фазу высокой волатильности, где геополитика напрямую формирует ценовые пики. Это усиливает давление на импортёров СПГ и повышает конкуренцию за доступные объёмы.
Для судоходства это означает потенциальный рост ставок в СПГ-сегменте и увеличение длины торговых маршрутов на фоне перераспределения потоков.
📌Title Transfer Facility (TTF) — основан в 2003 году, крупнейший газовый хаб Европы, расположенный в Нидерландах; управляется оператором газовой инфраструктуры Gasunie, находящимся в государственной собственности Нидерландов.
#LNG#Gas#Europe#TTF#Energy
🚢Цены на газ в Европе растут из-за рисков поставок СПГ.
Оптовые цены на газ в Европе продолжили рост на фоне опасений перебоев поставок СПГ из Ближнего Востока.
Усиление напряжённости в регионе и сообщения об атаках на танкеры усилили опасения длительных нарушений логистики.
Бенчмарк TTF (Нидерланды) вырос до €52,40 за МВт·ч (около $17,7 за mmBtu), а британский контракт на ближайший месяц поднялся до 133,12 пенса за терм.
Около 20% мировых поставок СПГ обычно проходит через Ормузский пролив, однако движение судов в этом коридоре почти остановилось после начала военных действий в регионе.
Ситуация усугубилась после объявления форс-мажора со стороны QatarEnergy, одного из крупнейших производителей СПГ.
Дополнительное давление на рынок оказывает низкий уровень европейских газовых запасов — около 29%, что значительно ниже сезонной нормы. Рост цен на нефть также поддерживает газовые котировки, поскольку многие контракты на СПГ и трубопроводный газ индексируются к нефтяным ценам.
Для мировой энергетики это означает усиление конкуренции за доступные СПГ-грузы между Европой и Азией и рост затрат на пополнение газовых хранилищ перед следующим отопительным сезоном.
📌Rabobank — международная банковская и финансовая группа из Нидерландов, основанная в 1898 году. Банк специализируется на финансировании сельского хозяйства, энергетики и сырьевых рынков и принадлежит кооперативной сети региональных банков Нидерландов.
#LNG#GasMarket#TTF#EnergyTrade#Hormuz
🚢Глобальная конкуренция за СПГ усиливается на фоне конфликта вокруг Ирана.
Европейские газовые рынки остаются крайне волатильными после перебоев поставок катарского СПГ.
По данным Intercontinental Exchange (ICE), базовый европейский контракт TTF вырос до €51,75 за МВт·ч, тогда как британский апрельский контракт достиг 133,75 пенса за терм.
Кризис связан с остановкой экспорта СПГ из Катара — одного из крупнейших поставщиков, обеспечивающего около 20% мирового рынка. Основной объём катарского газа направляется в Азию, и покупатели региона активно ищут альтернативные поставки.
В результате ряд СПГ-танкеров из США и Нигерии уже перенаправляется в Азию, уменьшая доступность грузов для Европы.
Аналитики отмечают, что Европа может временно компенсировать часть потерь за счёт запасов, однако конкуренция за американский СПГ (LNG) усиливается. По оценке Bernstein, чтобы удержать поставки, европейскому хабу TTF может потребоваться рост цен ещё на 40–50%.
Запасы газа в ЕС остаются ограниченными: около 29,6% против 37,2% год назад. LSEG также снизила прогноз отправки СПГ в Европу в апреле примерно на 400 ГВт·ч в сутки.
Для судоходства это означает перераспределение потоков СПГ в пользу азиатских направлений, увеличение дальних рейсов и рост фрахтовых ставок на газовозы.
📌Intercontinental Exchange (ICE) — международная биржевая группа, основанная в 2000 году, управляет глобальными торговыми площадками энергетических и финансовых деривативов. Компания является публичной и торгуется на Нью-Йоркской фондовой бирже (NYSE: ICE).
#LNG#GasMarkets#TTF#EnergyTrade#GasShipping