Что делать если нужно поставить какую-то 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
🌍 Earth’s core is as hot as the surface of the Sun, reaching temperatures around 5,400°C. This intense heat drives movements deep inside the planet that power volcanoes and earthquakes. ✨
#planet⚡#core⚡#heat⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
Myth: Glass flows over time, making old windows thicker at the bottom.
Fact: Glass is an amorphous solid, meaning its atoms are arranged randomly, not in a pattern like crystals. It stays solid at all normal temperatures and only softens above 600°C (1112°F). Old windows are thicker at the bottom because of how they were made, not because glass moves. 🔥🌡️
[Read more]
@googlefactss
#GlassFacts#Science#MythBusted#Heat
🪐 The exoplanet Gliese 367 b, located about 31 light-years away in the constellation Vela, completes an orbit in just 7.7 hours and endures surface temperatures over 1,500°C—hot enough to melt iron. This "ultra-short period" planet is likely a dense, iron-rich world blasted by so much stellar radiation that any atmosphere or lighter materials have long since been stripped away, leaving behind a scorched metallic core. ✨
#exoplanets⚡#extremes⚡#heat⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Exoplanet Kepler-70b, found in the constellation Cygnus, endures some of the most extreme conditions in the galaxy—it’s so close to its star that surface temperatures reach about 7,000°C, hotter than most stars and easily hot enough to vaporize rock. This planet orbits its star in just 5.7 hours, making it one of the fastest-orbiting planets ever discovered and a true survivor in a scorching, hostile environment. ✨
#exoplanets⚡#extremes⚡#heat⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🪐 Far from Earth, the exoplanet TOI-1431b (also known as MASCARA-5b) orbits so close to its star that its dayside temperature can reach about 2,700°C—hotter than molten lava. Even the nightside sizzles at a blistering 2,300°C, making TOI-1431b one of the hottest planets ever discovered and a true furnace world where no familiar material could survive. ✨
#exoplanets⚡#extremes⚡#heat⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🪐 The exoplanet KELT-9b, orbiting a star about 670 light-years away in Cygnus, is one of the most extreme worlds ever found—its dayside temperatures soar above 4,000°C, hotter than some stars. Metal atoms like iron and titanium are vaporized in its atmosphere, creating a blistering, glowing layer of gas that defies what we imagine for planets outside our solar system. ✨
#exoplanet⚡#extremes⚡#heat⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
♨️🌡The heat is on: Moscow temperatures are breaking records
Meteorologists claim that July 2, 3 and 4 could be the hottest days of this month in the history of meteorological observations in the capital since 1879. The air will warm up to 33-35 degrees, which is 10 degrees higher than the July climate norm.
On Friday, July 5, things should return closer to normal. Thermometer readings will drop to 24–28 degrees during the day, and to 15–18 at night. This is also above the climatic norm, but by one or two degrees.
Subscribe:@nido_russia
https://t.me/nido_russia/1688
#heat#weather#forecast#hot#record#nidorussia
🎬📷 Атмосферные фото со съёмок фильма «Схватка».
В этот день ровно 30 лет назад шедевр Майкла Манна вышел на большие экраны.
#ВИДЕОТЕКА
#Heat
#Схватка
#RobertDeNiro
#РобертДеНиро
#AlPacino
#АльПачино
#ValKilmer
#ВэлКилмер
#MichaelMann
#МайклМанн
#AshleyJudd
#ЭшлиДжадд
#TomSizemore
#ТомСайзмор
#BehindTheScenes
«Когда мы снимали сцену в кафе в фильме «Схватка», мы практически не проводили репетиций. Специально. Обсудили только общие моменты и хронометраж. Просто прошлись по тексту, потому что работу актеров я хотел увидеть только при съемке. А снимал я сразу на несколько камер, потому что понимал, что с такими актерами, как Аль и Боб, важна каждая деталь. Если Аль делает движение рукой, то Боб автоматически реагирует и меняет позу. Это органичное взаимодействие невозможно предугадать. В каждом дубле появляется что-то новое. Вот почему я всегда делаю ставку на спонтанность. Кстати, вся эта сцена в «Схватке» в итоге снята одним дублем. Но, в конечном счете, фильм получается таким, как я хочу».
🎬📷Сегодня исполнилось 83 года великому режиссёру, продюсеру и сценаристу Майклу Манну.
#ВИДЕОТЕКА
#MichaelMann
#МайклМанн
#Thief
#Вор
#TheLastOfMohicans
#ПоследнийИзМогикан
#Heat
#Схватка
#Ali
#Али
#Collateral
#Соучастник
#MiamiVice
#ПолицияМайамиОтделНравов
#PublicEnemies
#Blackhat
#Ferrari
#Феррари
#BehindTheScenes
«Если Марти попросит меня о чем-то, я буду думать об этом всерьез — даже если это покажется мне неинтересным».
Сегодня Роберту Де Ниро исполнилось 82 года.
#ВИДЕОТЕКА
#RobertDeNiro
#РобертДеНиро
#TheGodfatherPartII
#КрестныйОтец2
#TheDeerHunter
#ОхотникНаОленей
#RagingBull
#БешеныйБык
#OnceUponATimeInAmerica
#ОднаждыВАмерике
#MidnightRun
#УспетьДоПолуночи
#Casino
#Казино
#Heat
#Схватка
#Ronin
#Ронин
#TheIntern
#Стажер
#TheIrishman
#Ирландец