Что делать если нужно поставить какую-то 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
Катюша по-американски, облегченный вариант. Dodge WC-52 с установленной на нем пусковой установкой 4.5-inch Multiple Rocket Launcher T27, Аахен, ноябрь 1944 года. Также в ноябре 1944 года состоялся удачный, по мнению американских военных, случай применения T27 во время боёв за Хюртгенвальд. На сей раз их смонтировали в грузовиках GMC CCKW. Но артиллеристы скривили нос - "недалеко, много дыма, невысокая точность, большой расход боеприпасов". Именно с этим связано такое торможение с применением систем залпового огня в американской армии. Посему снова "Ксилофоны" стали работать только весной 1945 года. Чудачество и самодурство американской артиллерии как есть.
#mlrs
#conversion
🚢Exmar приобретает СПГ-танкеры для проектов конверсии.
Бельгийская Exmar приобрела СПГ-танкер "Ummera" (145 000 куб. м, 2005 г., бывший "Umm Bab") у греческой Maran Gas Maritime.
По данным брокеров, компания также согласовала покупку второго аналогичного судна.
Суда, оснащенные паротурбинной установкой, планируется использовать в проектах конверсии, включая возможные инфраструктурные решения в Колумбии и Нидерландах, что соответствует стратегии Exmar по развитию газовой инфраструктуры и плавучих решений.
С отраслевой точки зрения сделка отражает тренд вторичного использования устаревающих СПГ-судов. Вместо утилизации такие активы переоборудуются в специализированные платформы, включая FSRU и другие газовые проекты, что позволяет продлить их жизненный цикл.
Дополнительно рынок демонстрирует четкое разделение: современные газовозы востребованы для перевозок, тогда как более старые паротурбинные танкеры находят применение в инфраструктурных проектах, где требования к топливной эффективности ниже.
Таким образом, Exmar использует текущую конъюнктуру для формирования портфеля проектов с добавленной стоимостью, ориентированных на глобальный газовый рынок.
📌Exmar NV — основана в 1985 году, бельгийская энергетическая и судоходная компания, контролируется семьёй Саверис (Бельгия).
#LNG#shipping#conversion#energy#infrastructure
🚢70-метровая платформа "Ocean Falcon" продана новому владельцу для переоборудования в экспедиционную яхту.
Брокерская компания Northrop & Johnson объявила о продаже 66,8-метрового офшорного спасательного судна, представленного на рынке как 70-метровая экспедиционная платформа "Ocean Falcon".
Судно было построено в 2015 году на испанской верфи Astilleros Zamakona как коммерческое спасательное судно. Позднее оно было приобретено с целью конверсии в экспедиционную суперяхту.
В 2022 году проект переоборудования был принят верфью Lürssen, однако в 2024 году работы были прекращены. Ранее в проекте участвовала также Icon Yachts.
Благодаря стальному корпусу и водоизмещению 2 950 GT, судно обладает высокой автономностью и рассчитано на операции в удалённых районах - от Арктики до южной части Тихого океана. Крейсерская скорость: 12,5 узла, макс: 15 уз.
Платформа подходит для частных экспедиций, научных миссий или чартерной эксплуатации после конверсии.
Последняя заявленная цена судна составляла €14,95 млн.
Сделка отражает устойчивый интерес к крупным специализированным платформам для последующей переделки в сегменте конверсии оффшорных судов в экспедиционные яхты.
📌Northrop & Johnson основана в 1949 году в США и является одной из ведущих международных брокерских компаний в сегменте суперяхт. Компания частная; структура собственности не раскрывается публично.
#yachting#explorer#conversion#superyacht#maritime
В журнале Electrochemical Materials and Technologies вышла обзорная работа "H/D exchange studies of methane activation mechanisms in heterogeneous catalysis"
🔗https://doi.org/10.15826/elmattech.2023.2.014
🔗https://journals.urfu.ru/index.php/elmattech/article/view/6883
В данном обзоре подробно рассматривается механизм конверсии метана и анализируются существующие теоретические и экспериментальные подходы к изотопному обмену H/D между метаном и каталитическими системами:
#CH4#methane#conversion#isotope#catalyst#bonds#homogeneous#exchange #
#typescript#bun#conversion#convert#converter#document_conversion#elysia#file_conversion#file_converter#hacktoberfest#pdf_converter#self_hosted#tailwindcss#typescript
ConvertX is a self-hosted online file converter that supports over a thousand file formats, including images, videos, documents, e-books, and 3D assets. It lets you convert multiple files at once, offers password protection, and supports multiple user accounts for privacy. You can run it easily using Docker, making it simple to set up on your own server. This means your files stay private since conversions happen locally without sending data to external servers. It uses powerful open-source tools like FFmpeg and ImageMagick, giving you a versatile and secure way to handle all your file conversion needs in one place[1][2].
https://github.com/C4illin/ConvertX
E-commerce Conversion Crisis
E-commerce stores face a critical issue: they struggle to convert social media traffic into purchases, with conversion rates half as effective as average standards. Social media is a key source for online sales, with 64% of internet users shopping through these platforms, accounting for one-third of total online sales. The significant loss from unconverted traffic prompts stores to seek solutions, making platforms that improve conversion rates highly valuable.
Learn more about a startup addressing this issue: Read here
#Ecommerce#SocialMedia#Conversion#OnlineSales#Startup#Traffic#Retail#DigitalMarketing#Commerce#Business#Tech#Innovation#Sales#Marketing#UserExperience#Platforms#Shopping
E-commerce Conversion Crisis
E-commerce stores face a critical challenge with low conversion rates from social media traffic—about half of the general average. Despite this, social networks are a major traffic source, with 64% of users making purchases through them, accounting for a third of online sales. This gap presents significant revenue losses for stores that fail to convert this traffic, highlighting a potential market for platforms aimed at boosting conversions.
Read more: Fastfounder
#Ecommerce#Conversion#SocialMedia#Traffic#Sales#OnlineShopping#Startup#Market#Revenue#Challenges#Users#Platforms#Retail#Growth#Insights#Business#Tech#DigitalMarketing#Shopping#Income#Reports