Что делать если нужно поставить какую-то 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
Я всегда в процессе подготовки к съёмке думаю,кто она моя героиня?Как её зовут?О чём она думает?Где живёт?Что переживает?Любит?Кем работает?Мы с девочками в этот раз решили так..🔌🛠🧨💋
Злость Барреса,свобода Жида,ликование Стендаля,точность Констана ,чудовищная искренность,безапелляционная жесткость по отношению к себе,маниакальная чистота стиля,юмор,вера в красоту ночных автодорог,в покой затопленного леса,в смятение опустевших пляжей,в изящество автомобильных кладбищ,в тайну подземных паркингов,в поэзию заброшенных отелей,в мистику заплесневелых книг,с которых она с восторгом собирает обильную жатву афоризмов и да,у неё есть талант …и ещё половинка..Если Вы прочли о себе или хоть один пункт Вам о ком-то напомнил,нажмите 1😉✨
И создали образ..
@eka_vashakidze#video
@fabusheva#photo
@helga_polyukh#muah
О Боги!Ох уж эти …будни😂
Крайне будничная фотокарточка от @p.pollyyyyyyyyyy ✨😜
Будничный костюм от
@pppppppppp.ssssssssss 🫶🏻🥰
Будничная свежесть от
@villlllss💋😁
Будничная вилла 😂💫от
@villa_rossa_s
#tuesday#будни#вторник#casual#moodoftheday#villa#italianstyle#actress#actrice#model#limoncello#femme#donna#lady#womenfashion#streetphotography#photooftheday#photography#muah#purelove#heavenonearth#всемотличногонастроения#доброеутро#positivevibes#legs#extravaganza#светскаяжизнь
Каждый раз это как маленькое путешествие ,каждый раз я учусь покорять Мир, чтобы узнать его лучше.. чтобы узнать себя лучше..Каждый раз это целая история..маленький - большой фильм про Всех Нас…Вас Дорогие Женщины..в которой кроется она…
M-use..
I-nspiration..
R-adiance..
A-mour..
by …❣️
Ph/Production @ekate.sharapova
MUAH @katyarad_muah
Style @alina_shalak
Dress @dashali_official
#goodnight#video#moodvideo#moodoftheday#photooftheday#photography#muah#womenfashion#model#actress#stylist#petitefashion#trio#reddress#whitedress#blackdress#lady#мирославакарпович#женщинамира#petitefemme#mira#muse#purelove#heavenonearth#music#peaceful#всемхорошеговечера#miracle#magic#art
Женщина . Праздник …
Photo by @kamenskaya_art❤️🔥
Muah by @visagiste_olesya💋…
…ont créé la femme ❤️
#деньгорода#москва#moscow#moscowcity#red#rouge#femme#mira#actress#actrice#мирославакарпович#спраздником#photooftheday#photography#streetstyle#streetphotography#reddress#moodoftheday#positivevibes#purelove#heavenonearth#muah#fashion#уличнаяфотосессия#мид#очень#autumn #2024 #всемотличногонастроения#saturday
-Жду Вас вечером.В семь.
-А повод?
-А повод банален…Обнять…(локации для объятий прилагаются) 😂
24 сентября Алматы
26 сентября Тольятти
27 сентября Ульяновск
28 сентября Москва
29 сентября Краснодар
30 сентября Ростов-на-Дону
Жду Вас❤️🔥
Девушку Бонда создавали :
Папарацци @kamenskaya_art🖤
ШикБлескЛоск @visagiste_olesya💋
#reddress#autumn#september#theatre #2024 #women#femme#photooftheday#photography#friday#moscow#moodoftheday#jamesbond#bondsbaby#lady#mira#fashion#extravaganza#muah#heavenonearth#purelove#astana#actress#model#фото#фотодня#фотосессия#havefun#chique#photobomb