Что делать если нужно поставить какую-то 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
🇷🇺🚀 La fusée Soyouz-2.1a avec le cargo Progress MS-33 a été lancé depuis le cosmodrome de Baïkonour.
L’amarrage du vaisseau au module Poïsk du segment russe de la Station spatiale internationale (ISS) est prévu le 24 mars à 16h35 heure de Moscou (UTC+3).
#russie#progress#lancement
🚀La fusée porteuse #Soyouz 2.1a avec le cargo #Progress MS-34 a été lancée avec succès de la base spatiale de #Baïkonour.
Le vaisseau cargo acheminera environ 2,5 tonnes de fret vers la Station spatiale internationale, dont une nouvelle combinaison spatiale pour les sorties dans l'espace.
RT en français • Osez questionner !
🇷🇺 Le vaisseau cargo spatial Progress MS-35 est arrivé à Baïkonour où il restera jusqu'aux préparatifs de lancement. Le Progress MS-34 est également en cours de préparation à Baïkonour.
#russie#vaisseau#baïkonour#progress
#Zilu#Prove#Your#Progress
Join the Zilu – Prove Your Progress beta on ✈️#TestFlight
🔗 Link: https://testflight.apple.com/join/zF2T1aE6
Shared by Dimitri
Successful Launch of Soyuz-2.1a with Progress MS-33 from Upgraded Baikonur
The Soyuz-2.1a rocket carrying the Progress MS-33 cargo ship launched from the refurbished Site 31 at Baikonur Cosmodrome. This mission marks a key milestone in restoring infrastructure and ensuring steady supplies to the ISS. The site’s repair highlights Russia’s vital role in international space efforts.
The launch symbolizes overcoming technical challenges and strengthening Russia’s position in space exploration.
#Russia#Baikonur#Space#Soyuz#Progress
The main news of Russia and the world ishere.
🚀 Космос стал ближе!
В Подмосковье испытали мощнейший ракетный двигатель, напечатанный на 3D-принтере. Как тебе такое, Илон Маск?
#Космос#Даигатель#Технологии#Прогресс#ИИ#Россия#Подмосковье#ИлонМаск#3Dпринтер#Нейросети#Space#Engine#Technology#Progress#AI#Russia#ElonMusk#3DPrinter#NeuralNetworks
Major AI Investments and Developments
- France to invest €109 billion in AI, boosting Mistral's prospects. Read more
- Elon Musk plans to pay $100 billion to buy OpenAI and prevent its commercialization. Details here
- Research shows LLMs have better performance improvements compared to VLMs. GraphVLM Progress
- OpenAI has new features in o1 and o3-mini, allows document uploads, increase to 50 queries for Plus subscribers. More info
- Musk claims Grok 3 will outperform OpenAI’s offerings. Read about Grok
- OpenAI to finalize its first custom chip this year to enhance trading with Nvidia. Reuters news
#AI#OpenAI#ElonMusk#France#Investment#Chips#Mistral#LLM#VLM#DeepResearch#Grok#Crypto#Nvidia#TechNews#Finance#Market#Progress#Innovation#Data#Analysis
o3 & o3-mini Break Benchmark Records
The performance of o3 and o3-mini showcases state-of-the-art (SOTA) results across various benchmarks. Key insights include:
- Frontier Math scores increased from 2% to 25%.
- SWE-Bench achieved 71.7%, a significant leap for a startup that recently raised $200 million with 13.86% earlier this year.
- ELO on Codeforces reached 2727, held by only 150 individuals globally.
- ARC-AGI model scored 87.5%, breaking a five-year deadlock.
- Noteworthy progress on GPQA and AIME benchmarks.
Access to o3-mini is currently available to security researchers, while general public access is set for late January. Full access to o3 will follow later.
#AI#SOTA#Benchmarks#o3#o3-mini #FrontierMath#SWE-Bench #Codeforces#ELO#ARC-AGI #GPQA#AIME#Funding#Progress#Research#Technology#Innovation
[UZ] #EUROUZ jamoasi sizlarni #O'zbekiston Respulikasi #Konstitutsiyasi qabul qilinganligi #kuni bilan tabriklaydi! Tariximizdagi ushbu muhim sanani nishonlar ekanmiz, #Vatanimizga#farovonlik, #birdamlik, #taraqqiyot#bardoshlik tilab qolamiz!
-
[EN] #EUROUZ team extends congratulations on the occasion of #Constitution#Day of #Uzbekistan! Wishing #prosperity, #unity, and continued #progress to our #motherland as we celebrate this significant day in our history.
-
[RU] Команда #EUROUZ поздравляет соотечественников с Днём #Конституции Республики Узбекистан! Желаем процветания, единства и продолжения прогресса нашей #Родине в этот значимый день.
Follow #EUROUZ on Telegram: @eurouz_official