Что делать если нужно поставить какую-то 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
🌎 Floating solar farms are expanding worldwide, providing renewable energy while helping reduce water evaporation from reservoirs. These solar panels are mounted on platforms that float on lakes and reservoirs, increasing power output by 10-15% due to cooler operating temperatures on water. ✨
#solarenergy⚡#cleantech⚡#ecology
👉subscribe Interesting Planet
🎓 Международная конференция “Чистые технологии в химической индустрии: наука, опыт, перспективы”
14- октября АО «Узкимесаноат» совместно с Агентством Инновационного развития Республики Узбекистан провели международную конференцию, которая объединила ведущих учёных России, Узбекистана, Кореи и других стран, где обсуждались актуальные направления развития чистой химической технологии и зелёной энергетики.
💡 В ходе пленарных сессий прозвучали доклады, охватывающие широкий спектр современных исследований:
• Разработка микробиологических биотехнологий для химической промышленности Узбекистана — новые подходы к биоочистке и переработке органического сырья;
• Инновационные материалы для систем хранения энергии и водородной энергетики — исследования российских учёных РХТУ им. Д.И. Менделеева;
• Современные углеродные материалы на основе нефтяных остатков — технологии Корейского института химических технологий (KRICT);
• Извлечение лития из водных источников Узбекистана с использованием углеродных нанотрубок — разработки отечественных химиков;
• Экологический баланс при использовании химических добавок для бетона — новые решения для строительной отрасли;
• Катализаторы нового поколения для производства зелёного водорода — исследования Центра передовых технологий Узбекистана.
Особый акцент был сделан на перспективах сотрудничества научных институтов и промышленности, а также вовлечении молодых исследователей в будущие конференции — с возможностью представления стендовых докладов и постерных сессий.
🤝 Участники отметили высокий уровень организации и выразили готовность к развитию совместных проектов в области чистой химии, устойчивой энергетики и материалов будущего.
#РХТУ#Менделеев#Uzbekistan#CleanTech#GreenHydrogen#Conference#Innovation#Science#Tashkent
$14.59M for Air Mobility Project
$14.59 million funding round for Vaeridion aims to enhance clean and affordable air mobility solutions before 2030. Details at Vaeridion.
#Funding#AirMobility#CleanTech#Vaeridion#Sustainability#Aviation#Innovation#Transport#Investment#FutureMobility
🚀 Chinese Battery Manufacturer Anticipates Profit Surge Amid Rising Overseas Demand
A leading Chinese battery storage manufacturer has projected a significant increase in first-quarter profits, driven by a surge in overseas demand. Bloomberg posted on X that this development highlights the potential benefits for China's clean tech exporters amid energy disruptions linked to the ongoing conflict in Iran. The company attributes the anticipated profit growth to heightened international interest in its products, reflecting a broader trend of increased global reliance on clean energy solutions.
#ChineseBatteryManufacturer#ProfitSurge#OverseasDemand#CleanTech#EnergyDisruptions#GlobalReliance#CleanEnergySolutions#ChinaExport#IranConflict
Ecovia Renewables Secures $2.05M
Ecovia Renewables has raised $2.05 million for the production of biobased ingredients and materials, promising efficient and cost-effective solutions in the industry. This funding round took place on December 17, 2024.
#EcoviaRenewables#Funding#Biobased#Ingredients#Materials#Production#Sustainability#RenewableEnergy#CleanTech#Innovation#EcoFriendly#Investment#Startups#Environment#Green#Tech#VentureCapital#Market#Economy#Efficiency
Accelergen Energy Raises $20M
Accelergen Energy has secured $20 million in funding as of December 19, 2024. The firm focuses on delivering clean power assets characterized by robust and sustainable locational value through strategic investments, development, commercialization, and optimized operations. For more details, visit Accelergen Energy.
#Accelergen#Energy#Funding#CleanPower#Investment#Sustainability#RenewableEnergy#Development#Commercialization#Operations#ClimateTech#GreenEnergy#Ecosystem#Infrastructure#PowerAssets#Technology#StrategicInvestment#CleanTech#EcoFriendly#LocationalValue