Что делать если нужно поставить какую-то 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
央视 报道电动车企业“锁电”丑闻。
简单说就是电池保质期前通过锁电,限制使用,800的标定里程可能只能跑3,400,保质期结束后再看情况解开。
以防电池因正常性能使用而坏掉。
#新能源
CCTV reported on the "battery-locking" scandal involving electric vehicle companies.
Simply put, this involves locking the battery's charge before its warranty expires, restricting its use. A battery with a rated range of 800 km might only achieve 300-400 km. The lock is then lifted after the warranty expires, depending on the situation.
This is to prevent the battery from failing due to normal use.
#NewEnergy
BYD CHAZOR avtomobilining dinamikasi va tezkorligini his eting.
Uchrashuvga bir kundan ozroq vaqt qoldi…
____
Испытайте на себе динамику и стремительность BYD CHAZOR.
До встречи осталось меньше суток…
#byduz#BuildYourDreams#bydauto#byduzbekistan#auto#bydauto#bydtashkent#newenergy
FJ Dynamics Secures $1.5M Funding
FJ Dynamics closes a funding round of $1.50M, scheduled for November 30, 2024. The company specializes in robotics, digitization, automation, and new energy, applying its technology across precision agriculture, digital construction, geospatial, and electrical sectors. Learn more at FJ Dynamics.
#FJDynamics#Funding#Robotics#Automation#NewEnergy#PrecisionAgriculture#DigitalConstruction#Geospatial#Electrical
Green Future texnologiyalari BYD kompaniyasining texnologik innovatsiyalar orqali barqaror kelajakka sodiqligini mustahkamlaydi.
⠀
BYD kompaniyasi NEV dvigatellarini ishlab chiqarishni boshlagan birinchi kompaniya hisoblanadi. Kompaniya faqatgina ekologik toza BEV (akkumulyatorli elektromobillar) va PHEV (plug-in gibrid elektromobillari) avtomobillarini ishlab chiqarishga e'tibor qaratish uchun yonish dvigateli bilan jihozlangan transport vositalarini ishlab chiqarishni to'xtatgan.
⠀
Brend haqida batafsil ma'lumot olish uchun:
bydauto.uz
⠀
_
Технологии Green Future подкрепляют непоколебимую приверженность BYD к устойчивому будущему за счет технологических инноваций.
⠀
BYD — первый в мире производитель автомобилей на новой энергии NEV, который прекратил производство автомобилей с двигателем полного сгорания, чтобы сосредоточиться исключительно на более экологически чистых BEV (аккумуляторных электромобилях) и PHEV (подключаемых гибридных электромобилях).
⠀
Узнать о бренде больше:
bydauto.uz
⠀
#byduz#BuildYourDreams#bydauto#byduzbekistan#auto#bydauto#bydtashkent#green#EV#NEV#newenergy#electrovehicle
Shunchaki his eting...
Bugun. Ajoyib yangilik. Hayajonli fursat.
SONG PLUS DM-i.
Zamonaviy krossover qanday bo'lishi kerakligi haqidagi tasavvuringizni o'zgartiruvchi uchrashuvga oz fursat qoldi.
____
Просто почувствуйте…
Сегодня. Что-то новое. Что-то захватывающее.
SONG PLUS DM-i.
До встречи, которая изменит ваши представления о том, каким должен быть современный кроссовер, осталось совсем недолго.
#byduz#BuildYourDreams#bydauto#byduzbekistan#auto#bydauto#bydtashkent#green#EV#NEV#newenergy#electricvehicle
BYD HAN, BYD CHAZOR yoki SONG PLUS DM-i? Ularning qaysi biri sizga ko'proq yoqadi? Fikringizni izoh sifatida yozib qoldiring.
_
BYD HAN, BYD CHAZOR или SONG PLUS DM-i? Кто из них — ваш личный фаворит? Пишите в комментариях.
#byduz#BuildYourDreams#bydauto#byduzbekistan#bydauto#bydtashkent#NEV#newenergy#car#automotive#caroftheday#BYDCHAZOR#BYDHAN#SONGPLUSDM-i
Katta shahar ritmida - muhim narsalarni o'tkazib yubormang. Go'zallikka e'tibor qarating.
Misol uchun, quyosh botishiga.
BYD CHAZOR bilan quyosh botishini go'zallik bilan qarshi oling
__
В ритме большого города — не упускайте что-то важное. И обязательно замечайте прекрасное.
Например, закат.
Встречайте закат стильно с BYD CHAZOR
#byduz#BuildYourDreams#bydauto#byduzbekistan#bydauto#bydtashkent#NEV#newenergy#car#automotive#carlifestyle#caroftheday#citylife#urbanmobility
Kuchli ikkitalik yorug'lik diod faralar tunning yakunini ifodalovchi tong yulduziga o'xshaydi.
⠀
Yulduzli matritsa — taniqli dizayn va futuristik uslubning bir qismidir.
⠀
Bir-biriga tutash orqa chiroqlar yelkanlarni eslatadi va yaqinlashib kelayotgan yoqimli sayohatning tuyg'usini beradi.
BYD CHAZOR bilan hayratlangan nigohlar to'lqinidan bahramand bo'ling.
Avtomobil haqida batafsil: bydauto.uz
⠀
#byduz#BuildYourDreams#bydauto # #bydauto#bydtashkent#NEV#newenergy#car#automotive#carlifestyle#caroftheday#citylife#urbanmobility#BYDCHAZOR
_
Мощные двойные светодиодные фары подобны утренней звезде, знаменующей окончание ночи.
⠀
Звездная матрица — часть узнаваемого дизайна и футуристичности.
⠀
Сплошные задние фонари напоминают развевающиеся паруса, и дарят полное ощущение приближающегося приятного путешествия.
Ловите волны восхищенных взглядов с BYD CHAZOR.
Узнать об автомобиле больше: bydauto.uz
⠀
#byduz#BuildYourDreams#bydauto # #bydauto#bydtashkent#NEV#newenergy#car#automotive#carlifestyle#caroftheday#citylife#urbanmobility#BYDCHAZOR
🚀 STOCKS | Galaxy Securities Highlights Opportunities Amid Rising Oil Prices
On April 12, Galaxy Securities released a report noting that March's Producer Price Index (PPI) turned positive year-on-year, driven by high oil prices and ongoing policy efforts. According to Jin10, the report emphasizes the potential for profit recovery in China's A-share market, particularly in upstream sectors.
The report identifies several investment opportunities. Firstly, it suggests focusing on energy and alternative demand sectors, including coal, coal chemicals, new energy, shipping ports, and oil and gas. Additionally, there is potential for recovery in the non-ferrous metals sector, including precious and minor metals.
Secondly, the report highlights defensive assets such as finance (banks), utilities, and transportation. Thirdly, it points to technology innovation and self-sufficiency sectors, including power equipment, energy storage, semiconductors, computing power, and communication equipment. In the consumer sector, it suggests focusing on agriculture, forestry, animal husbandry, fisheries, food and beverages, and household appliances.
The report also notes that if there are signs of easing in ongoing conflicts, there could be significant recovery opportunities in previously oversold sectors.
#GalaxySecurities#OilPrices#ProducerPriceIndex#ProfitRecovery#AShareMarket#UpstreamSectors#EnergySector#AlternativeDemand#Coal#NewEnergy#ShippingPorts#OilAndGas#NonFerrousMetals#PreciousMetals#DefensiveAssets#Finance#Utilities#Transportation#TechnologyInnovation#SelfSufficiency#PowerEquipment#EnergyStorage#Semiconductors#ComputingPower#CommunicationEquipment#ConsumerSector#Agriculture#FoodAndBeverages#HouseholdAppliances#RecoveryOpportunities