Что делать если нужно поставить какую-то 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
BulCoin Early Community — start
After yesterday's AMA, we begin to form the early BulCoin community.
The first level has already been created:
🥇 Pioneers
Pioneers will be the first 100 people These are the first project participants who have been given access to the closed chat and will participate in the development of BulCoin at an early stage.
22/28 participants of the previous promotion have gained access to invites and have joined the closed group. If you participated but didn't get in - write to us and we will give you a link
Next, new levels are opened:
🥈 Early Supporters — the first 500 participants
🥉 Contributors — the first 2000 participants
Early community members will be able to:
• participate in testing the BLC Market
• receive additional BLC rewards
• invite friends and climb the leaderboard
• be the first to learn about the development of the project
Today we start the invitation program.
Details — in the next post.
#Pioneers
FAQ | BUY
Launching the BulCoin Referral Program
We are starting a referral program for the early BulCoin community.
Now every participant can invite friends to the project and receive additional bonuses.
How it works:
Invite your friends to the BulCoin channel
Ask them to mention your username in the comments to this post
Bonuses BLC are credited for invitations
Rewards:
• 3 invited — You join the private Pioneers chat
• 10 invited — Bonus of 500,000 BLC
• 25 invited — 3mln BLC + Participation in the BulCoin operational staff
We will regularly publish the leaderboard — participants who have invited the most people.
The best participants can receive additional rewards and a special status in the community.
This is just the beginning of the formation of the BulCoin Early Community
Invite your friends and help build the BulCoin community
#Pioneers#Referrals
FAQ | BUY
«Пионеры в двадцатый раз смотрят "Пиратов ХХ века"»
акрил, холст, 80х100, Doping Pong, 2025
#dopingpong#pioneers#soviet#karate#пиратыXXвека#pirates#XXcentury#ussr#retro
Новая картина арт-группы Doping Pong посвящена самым благодарным зрителям фильма - юным пионерам, устроившим разборки, кто сильнее - современные пираты или советские моряки, прямо в кинозале во время сеанса, на который они пришли уже в двадцатый раз.
Фильм «Пираты XX века» стал абсолютным кассовым лидером советского кинопроката: к 1990 году ленту посмотрело 120 миллионов человек. Школьники ходили на него целыми классами. Фанатично, многократно и год за годом: с самой премьеры в 1980-м, еще учениками начальной школы, и до 1990-го, уже на пороге взрослой жизни. Можно сказать, что именно этот фильм взрастил и изменил целое поколение 80-х годов. А поколение, которое выросло на фильме, затем в 90-х изменило и страну по образу и подобию игр в темном зале кинотеатра – причисляя себя к Пиратам или Морякам.
More info: Лот 31 https://vladey.net/ru/lot/13547
#dopingpong#pioneers#soviet#karate#kids#пиратыXXвека#pirates#XXcentury#ussr#retro
В картине «Остров живых» слову «пионеры» возвращается его первоначальное значение – первооткрыватели. Лодка с пионерами и вожатым – это символ первопроходцев, направляющихся к таинственному острову. Их ожидает песчаный берег, где не ступала нога современного человека, и долгое восхождение по каменным ступеням на залитую солнцем вершину, где, подобно Фата-Моргане, величественно возвышается древнее святилище.
#dopingpong#oiloncanvas#island#inversion#pioneers#alive#fatamorgana#böcklin#legends#myths
More info: Лот 18 https://vladey.net/ru/lot/9268