Что делать если нужно поставить какую-то 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
Maritime Debt Recovery under English Law
Большинство думает, что взыскание долга в морской индустрии начинается с арбитража. На практике всё наоборот.
Если контрактная архитектура построена правильно, а доказательства собраны системно, значительная часть bunker debt споров решается до начала арбитража. Именно поэтому профессиональная работа начинается не с иска, а с анализа структуры сделки.
В английской практике взыскание обычно проходит через несколько последовательных этапов:
case intake → contract review → evidence architecture → strategic demand → arbitration → award → enforcement.
Каждый этап выполняет свою функцию.
Где-то создаётся юридическая позиция, где-то усиливается коммерческое давление, а где-то уже формируется арбитражное дело.
В новой инфографике я показал структуру этой системы — как профессиональный workflow взыскания bunker debt в рамках английского права и LMAA arbitration.
Это не теория.
Это реальная рабочая архитектура, которой пользуются maritime lawyers и bunker suppliers.
Если вы работаете с морскими контрактами, поставками топлива или чартерными спорами, понимание этой структуры резко повышает шансы на успешное взыскание.
#EnglishLaw#MaritimeLaw
#BunkerDisputes#LMAA
#Arbitration#DebtRecovery
#ShippingLaw#LegalStrategy
В спорах о бункерной задолженности многие компании делают одну и ту же ошибку: пытаются сразу идти в арбитраж или начинать агрессивное взыскание. На практике это почти всегда приводит к потере времени, денег и стратегических возможностей.
Любое эффективное взыскание начинается не с иска, а с грамотного case intake. Это первичная юридическая диагностика спора. На этом этапе становится понятно, есть ли вообще юридически жизнеспособное требование, против кого его нужно предъявлять и где оно должно рассматриваться.
Первый шаг — идентификация спора. Нужно чётко понять структуру требования: какая поставка, какой инвойс, какая задолженность и на каком основании она возникла.
Далее идёт картирование сторон. В бункерных спорах это критически важно, потому что коммерческая цепочка почти всегда сложная: трейдер, физический поставщик, оператор судна, чартерер, бенефициарные структуры. Ошибка на этом этапе может привести к иску против неправильной стороны.
Следующий этап — проверка юрисдикции. Необходимо определить применимое право, наличие и действительность арбитражной оговорки, а также место потенциального разбирательства.
После этого проводится первичный анализ документов: bunker confirmation, delivery receipt, invoice, условия оплаты и коммерческая переписка. Именно здесь формируется доказательная база будущего дела.
И только затем имеет смысл оценивать реальную перспективу взыскания: силу требования, платёжеспособность должника и возможности исполнения решения.
Результатом этой работы становится Case Assessment Memorandum — документ, который фиксирует юридическую позицию, состояние доказательств, стратегию взыскания и рекомендуемые дальнейшие шаги.
Хорошая юридическая стратегия всегда начинается с диагностики.
Не с иска.
Не с угроз.
А с понимания структуры спора.
#MaritimeLaw⚓#ShippingLaw🚢
#BunkerDisputes⛽
#MaritimeArbitration⚖️#LMAA
#InternationalArbitration🌍
#AdmiraltyLaw#ShippingIndustry
#DebtRecovery💼
Получил позавчера запрос на сопровождение арбитража в Лондоне по очередному бункеровочному делу. И снова та же картина, которую я вижу уже много лет: судно эксплуатируется без законных полномочий, фрахтователь давно лишён права распоряжения, договор расторгнут, но судно продолжает ходить, будто ничего не случилось. Потом прилетает заявка на бункер, поставщик честно выполняет работу, а через месяц компания-фрахтователь уходит в банкротство.
Счёт остаётся висеть в воздухе.
И каждый раз передо мной один и тот же вопрос: кто в итоге несёт ответственность? Кто должен платить за топливо, которое судно фактически съело? Фрахтователь? Слишком поздно. Стивидор? Не тот случай. Судовладелец? «Мы не знали». Но судно работало, топливо использовало, выгоду получило именно оно.
Вот здесь и проявляется сила английского права. Оно не покупается на формальные фразы. Оно смотрит на факты.
Если судно получило выгоду — а владелец не предпринял реальных шагов остановить незаконную эксплуатацию — арбитраж по LMAA вполне может возложить ответственность на владельца. Через доктрину unjust enrichment и implied acceptance английское право умеет доставать истинного выгодоприобретателя даже из-под слоя формальной «невиноватости».
Такие проекты — отличная иллюстрация, почему арбитраж в Лондоне остаётся самым надёжным инструментом в спорах о бункеровке, чартерпати и морских поставках. Он позволяет вытащить деньги даже там, где на первый взгляд их будто бы невозможно вернуть.
Если у вас похожая ситуация:
— судно ушло во фрахт и исчезло из зоны контроля,
— фрахтователь не платит,
— судовладелец дистанцируется,
— арест невозможен,
— юрисдикции разные и всё кажется тупиком,
значит, это уже не обычный долг. Это арбитражный кейс, и его нужно вести правильно.
Я помогаю таким поставщикам, судовладельцам и операторам структурировать стратегию, собирать доказательства, запускать арбитраж в Лондоне, получать решение и взыскивать долг — даже если должник ушёл в банкротство, а судно продолжает работать в другой части света.
Если у вас похожая история — напишите. Такие вопросы лучше решать быстро и грамотно, пока следы ещё не остынут.
#EnglishLaw#Arbitration
#LMAA#MaritimeLaw
#Bunkering#ShippingDisputes
#UnjustEnrichment#LondonArbitration#Charterparty
#MaritimeClaims#DebtRecovery
#LegalStrategy