Что делать если нужно поставить какую-то 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
🇦🇷Rosario
⚔️Rosario Central 1-0 Newells Old Boys
🔥Classico Rosarino
Тут всяческое описание излишне, просто обстановка на стадионе за несколько минут до начала дерби в Росарио.
#RosarioCentral#Ultras#Hooligans#Pyro#Argentina
Argentina Liga Profesional Argentina🇦🇷
2026-05-13 21:45 UTC
Rosario Central vs. Racing Club
Predicted outcome: Racing Club❌
Predicted score: 1:2
Actual: Draw 1:1
#RosarioCentral#RacingClub
2026-05-14 00:45 UTC
River Plate vs. Gimnasia L.P.
Predicted outcome: River Plate✅
Predicted score: 2:1
Actual: River Plate 2:0
#RiverPlate#GimnasiaLP
#Football#ArgentinaLigaProfesional
Argentina Liga Profesional Argentina🇦🇷
2026-04-19 16:30 UTC
Aldosivi vs. Racing Club
Predicted outcome: Racing Club❌
Predicted score: 0:1
Actual: Draw 1:1
#Aldosivi#RacingClub
2026-04-19 20:00 UTC
River Plate vs. Boca Juniors
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Boca Juniors 0:1
#RiverPlate#BocaJuniors
2026-04-19 23:30 UTC
Rosario Central vs. Sarmiento Junin
Predicted outcome: Rosario Central✅
Predicted score: 1:0
Actual: Rosario Central 2:1
#RosarioCentral#SarmientoJunin
#Football#ArgentinaLigaProfesional
Argentina Liga Profesional Argentina🇦🇷
2026-04-04 16:30 UTC
Aldosivi vs. Estudiantes de Rio Cuarto
Predicted outcome: Aldosivi❌
Predicted score: 1:0
Actual: Draw 0:0
#Aldosivi#EstudiantesdeRioCuarto
2026-04-04 20:30 UTC
Independiente vs. Racing Club
Predicted outcome: Draw❌
Predicted score: 2:2
Actual: Independiente 1:0
#Independiente#RacingClub
2026-04-05 00:00 UTC
Rosario Central vs. Atletico Tucuman
Predicted outcome: Rosario Central✅
Predicted score: 2:1
Actual: Rosario Central 2:1
#RosarioCentral#AtleticoTucuman
#Football#ArgentinaLigaProfesional
Argentina Liga Profesional Argentina🇦🇷
2026-05-10 18:00 UTC
Rosario Central vs. Independiente
Predicted outcome: Rosario Central✅
Predicted score: 2:1
Actual: Rosario Central 3:1
#RosarioCentral#Independiente
2026-05-10 20:00 UTC
Estudiantes L.P. vs. Racing Club
Predicted outcome: Estudiantes L.P.❌
Predicted score: 2:1
Actual: Racing Club 0:1
#EstudiantesLP#RacingClub
2026-05-10 22:00 UTC
River Plate vs. San Lorenzo
Predicted outcome: River Plate❌
Predicted score: 2:0
Actual: Draw 1:1
#RiverPlate#SanLorenzo
2026-05-11 00:30 UTC
Velez Sarsfield vs. Gimnasia L.P.
Predicted outcome: Velez Sarsfield❌
Predicted score: 2:1
Actual: Gimnasia L.P. 0:1
#VelezSarsfield#GimnasiaLP
#Football#ArgentinaLigaProfesional
CONMEBOL Libertadores🌎
2026-04-15 22:00 UTC
Cruzeiro vs. U. Catolica
Predicted outcome: Cruzeiro❌
Predicted score: 1:0
Actual: U. Catolica 1:2
#Cruzeiro#UCatolica
2026-04-15 22:00 UTC
Libertad Asuncion vs. Rosario Central
Predicted outcome: Draw❌
Predicted score: 0:0
Actual: Rosario Central 0:1
#LibertadAsuncion#RosarioCentral
2026-04-16 00:30 UTC
Fluminense vs. Independ. Rivadavia
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Independ. Rivadavia 1:2
#Fluminense#IndependienteRivadavia
2026-04-16 00:30 UTC
Corinthians vs. Santa Fe
Predicted outcome: Corinthians✅
Predicted score: 2:0
Actual: Corinthians 2:0
#Corinthians#SantaFe
2026-04-16 02:00 UTC
Independiente del Valle vs. UCV
Predicted outcome: UCV❌
Predicted score: 1:2
Actual: Independiente del Valle 3:1
#IndependientedelValle#UCV
#Football#CopaLibertadores
Argentina Liga Profesional Argentina🇦🇷
2026-04-24 20:00 UTC
Deportivo Riestra vs. Independiente
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Deportivo Riestra 2:0
#DeportivoRiestra#Independiente
2026-04-24 22:15 UTC
Lanus vs. Central Cordoba de Santiago
Predicted outcome: Lanus❌
Predicted score: 2:0
Actual: Draw 0:0
#Lanus#CentralCordobadeSantiago
2026-04-24 22:15 UTC
Estudiantes de Rio Cuarto vs. Rosario Central
Predicted outcome: Rosario Central✅
Predicted score: 0:2
Actual: Rosario Central 1:2
#EstudiantesdeRioCuarto#RosarioCentral
2026-04-25 00:30 UTC
Platense vs. San Lorenzo
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: San Lorenzo 0:1
#Platense#SanLorenzo
2026-04-25 00:30 UTC
Racing Club vs. Barracas Central
Predicted outcome: Racing Club❌
Predicted score: 1:0
Actual: Draw 1:1
#RacingClub#BarracasCentral
#Football#ArgentinaLigaProfesional
Argentina Liga Profesional Argentina🇦🇷
2026-03-22 18:30 UTC
Sarmiento Junin vs. Aldosivi
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Sarmiento Junin 2:0
#SarmientoJunin#Aldosivi
2026-03-22 20:45 UTC
Estudiantes de Rio Cuarto vs. River Plate
Predicted outcome: River Plate✅
Predicted score: 0:1
Actual: River Plate 0:2
#EstudiantesdeRioCuarto#RiverPlate
2026-03-22 23:00 UTC
Boca Juniors vs. Instituto Cordoba
Predicted outcome: Boca Juniors✅
Predicted score: 2:0
Actual: Boca Juniors 2:0
#BocaJuniors#InstitutoCordoba
2026-03-23 01:15 UTC
Argentinos JRS vs. Platense
Predicted outcome: Argentinos JRS✅
Predicted score: 1:0
Actual: Argentinos JRS 1:0
#ArgentinosJRS#Platense
2026-03-23 01:15 UTC
Independ. Rivadavia vs. Rosario Central
Predicted outcome: Rosario Central❌
Predicted score: 0:1
Actual: Independ. Rivadavia 2:0
#IndependienteRivadavia#RosarioCentral
#Football#ArgentinaLigaProfesional
Argentina Liga Profesional Argentina🇦🇷
2026-04-12 18:00 UTC
Newells Old Boys vs. San Lorenzo
Predicted outcome: Draw✅
Predicted score: 1:1
Actual: Draw 0:0
#NewellsOldBoys#SanLorenzo
2026-04-12 18:00 UTC
Platense vs. Gimnasia M.
Predicted outcome: Platense❌
Predicted score: 1:0
Actual: Draw 1:1
#Platense#GimnasiaM
2026-04-12 20:30 UTC
Atletico Tucuman vs. Tigre
Predicted outcome: Draw✅
Predicted score: 1:1
Actual: Draw 0:0
#AtleticoTucuman#Tigre
2026-04-12 20:30 UTC
Huracan vs. Rosario Central
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Huracan 3:1
#Huracan#RosarioCentral
2026-04-12 23:00 UTC
Racing Club vs. River Plate
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: River Plate 0:2
#RacingClub#RiverPlate
#Football#ArgentinaLigaProfesional