Что делать если нужно поставить какую-то 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
👟 ¡Lunes de renovación deportiva y tecnológica!
Arrancamos la semana con chollazos irresistibles: el chándal de Adidas para hombre a casi mitad de precio y el repetidor WiFi 6 de TP-Link para que internet llegue a cada rincón de tu hogar. También destacamos la regleta de pared ultra potente con puertos USB-C, la jarra BRITA para disfrutar de agua siempre filtrada y el spray After Sun de Isdin a precio de locura. ¡Y para los más curiosos, un microscopio digital infantil con un 52% de descuento! 📶🔌
👇 Selección del día:
🔥 Adidas Chándal para Hombre por 39,90€ (-47% dto)
🔗https://amzn.to/4sugFfa
🔥 TP-Link RE500X - WiFi 6 Repetidor por 39,90€ (-43% dto)
🔗https://amzn.to/4chQWAI
🔥 Regleta de pared con 5 tomas y 3 USB por 25,72€
🔗https://amzn.to/4cahPba
🔥 Microscopio Digital para niños por 24,00€ (-52% dto)
🔗https://amzn.to/3Qax8b6
🔥 BRITA Jarra con filtro de agua por 13,90€ (-28% dto)
🔗https://amzn.to/4ciSH0r
🔥 Isdin After Sun Spray por 8,50€ (-52% dto)
🔗https://amzn.to/47Usnsq
🔥 Fokky 5 Bandas Elásticas Musculación por 6,90€ (-46% dto)
🔗https://amzn.to/4t94dD3
#Adidas#TPLink#Brita#OfertasAmazon#AhorroLunes
📲 No te pierdas ni uno, síguenos en directo:
🔗https://whatsapp.com/channel/0029VbB9FRYEQIafeiqslX2F
YouTube Issues and Economic Updates
🔧 Users in Russia report ongoing issues with YouTube, marking another decrease in platform traffic, as confirmed by Google.
📊 The Russian Communications Ministry (RKN) plans to acquire data on user attempts to access blocked sites, though it already collects some relevant data.
⚙️ The Ministry of Economic Development aims to increase processing limits to enhance labor market flexibility amid personnel shortages.
📈 Predictions suggest the information security market in 2024 could grow by 30% to reach 593 billion rubles, though other estimates are lower.
📺 Yandex is negotiating with Haier, TCL, and Huawei for the installation of its OS on all their TVs supplied to Russia.
💰 AI search engine Perplexity successfully raised $500 million at a valuation of $9 billion, a significant increase from its earlier valuation of $1 billion.
🇺🇸 In the US, an investigation has been initiated against TP-Link over national security concerns, as they hold 65% of the domestic router market.
#YouTube#RKN#EconomicDevelopment#MarketGrowth#InformationSecurity#Yandex#Perplexity#Funding#TPLink#NationalSecurity#Russia#TechNews#AI#Router#Television#DataPrivacy#UserExperience#TrafficIssues
YouTube Issues and Economic Growth
Users in Russia again report issues with YouTube, causing a traffic drop noted by Google. The Roskomnadzor is seeking data from providers on user attempts to access blocked sites, despite existing data collection measures not aiding user identification. The Ministry of Economic Development aims to raise processing limits to improve labor market flexibility amid staff shortages. The cybersecurity market is projected to grow by up to 30% in 2024, although some estimates suggest only 10-15% growth due to high interest rates and tax burdens. Yandex plans to negotiate with Haier, TCL, and Huawei to install its OS on all TVs sold in Russia. AI search engine Perplexity secures $500 million funding, raising its valuation to $9 billion, up from $1 billion in April. In the U.S., the investigation into TP-Link for potential national security threats begins, as it commands 65% of the U.S. home router market.
#YouTube#Russia#InternetIssues#Roskomnadzor#LaborMarket#Cybersecurity#Growth#Yandex#AI#Funding#Perplexity#TPLink#NationalSecurity#TechNews#MarketTrends#Television#Haier#TCL#Huawei#EconomicDevelopment#VPN