Что делать если нужно поставить какую-то 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
🍿 The Magic Behind 'John Wick 4': Action Without Limits#BehindTheScenes
Keanu Reeves took his commitment to the max for 'John Wick 4', undergoing 12 weeks of intense training to perform unprecedented action scenes. 🚗🔫 A standout sequence features him driving a car without doors or a windshield through the Arc de Triomphe, all while shooting!
Cinematographer Dan Laustsen chose vibrant colors and ARRI Large Format cameras to capture the essence of locations like Osaka and Paris. Chad Stahelski, the genius behind 'John Wick', meticulously coordinated each fight, ensuring realism and spectacle. Each scene is a visual masterpiece that elevates action cinema to new heights. 🎬💥
📹 Don't miss the behind-the-scenes video here. You'll be amazed at how this action marvel was made!
> #𝘴𝘦𝘳𝘪𝘦𝘴 · 🚀𝘣𝘰𝘰𝘴𝘵
From the Forge #01 — Early sketches of our central crafting system
Hey! We’ve been diving deep into early sketches for one of the key elements in DeckForge — the Forge.
This is the place where something important is being created... but we won’t spoil the details just yet..
Right now:
🔵We're testing visual concepts for the core mechanism
🔵Exploring how materials, energy and crafting logic come together
🔵Prototyping tools like hammers, crystals, and tech-infused devices
This is just the start — most of what you see is raw and mid-process.
But that’s exactly what makes it fun — sharing how it really looks behind the scenes.
#DeckForge#BehindTheScenes
Join the DeckForge Community:
🌐YouTube𝕏Twitter🎮Discord
👉Chat👉Announcements
From the Forge #14: 🔨 | Premium Shop Incoming
Forgers, our team is working on one of the most important features — the in-game Premium Shop
This is where your progress, dedication & $BOOMS holdings will really start to shine.
Based on your activity and tokens, you’ll unlock exclusive Founder Tiers of rewards — packs that will never be available again once the official release.
What does this mean for you?
🔵You’ll be able to claim your Founder Packs & open them once the full release is live
🔵We’re still very early, which means your progress and feedback are critical for shaping the future of DeckForge
Big updates are coming. September will be full of surprises, new features & major announcements. Stay tuned — the best is yet to come.
➡️ Don’t forget: claim your rewards in Discord and secure your special roles. They’ll be more valuable than you think…
Stay Forged.
#DeckForge#ClosedBeta#BehindTheScenes
Join the DeckForge Community:
🌐YouTube𝕏Twitter🎮Discord
👉Chat👉Announcements👉DeckForge
«Говорят, из моего «Назад в будущее» мог бы получиться неплохой мюзикл. Не хочу убедиться в этом при жизни».
Сегодня исполнилось 73 года Роберту Земекису.
#ВИДЕОТЕКА
#RobertZemeckis
#BehindTheScenes
Йост Вакано, ASC, держит свой собственный ARRI IIC на борту подводной лодки во время съемок душераздирающей драмы Второй мировой войны Das Boot (1981) . Рядом с ним первый AC Питер Майвальд, держащий дистанционное управление. «Гламур и очевидная техническая гладкость не имели места в фильме», - написал Вакано в «American Cinematographer». «Камера должна была подчиняться тем же ограничениям, что и актеры. Требование чрезвычайной мобильности в узких пределах лодки не позволяло даже использовать стедикам. Это должна быть ручная камера! » #newsfidllercom#новости#засценой#bts#behindthescenes
Фильм называется "Подводная лодка", рейтинг кинопоиска 8.1 бюджет 14 млн долларов, сборы в США 11 млн. долларов
«Понятие независимости — относительное. Вас нельзя назвать независимым, если вы не снимаете кино за свой собственный счет, чего в здравом уме никто не делает».
Сегодня Джиму Джармушу исполнилось 73 года.
#ВИДЕОТЕКА
#JimJarmusch
#ДжимДжармуш
#BehindTheScenes
📷🎬🎸 Майкл Джей Фокс репетирует знаменитую сцену на съемках фильма «Назад в будущее». Сегодня нашему любимому актеру исполнилось 64 года.
#ВИДЕОТЕКА
#MichaelJFox
#BackToTheFuture
#BehindTheScenes