Что делать если нужно поставить какую-то 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
👋Приветствую! Начнём день с прекрасного?
Хрен тебе, а не красивое видео.
В доме должна быть одна звезда, и это не ты.
Спорим, видео со мной наберёт больше просмотром, чем с тобой?
Ну я пошёл...
Tough luck, you're not getting a beautiful video.
There should only be one star in this house, and it's not you.
Bet my video gets more views than yours?
Well, I'm off...
• На переднем плане (чего? of what? + Genit.) видео/фото/картины
[na pi-red-nim pla-ne]
In the foreground(of the video/photo/painting)
• На заднем плане
[na zad-nem pla-ne]
In the background(of)
#LearnRussian
#useful_vocabulary
😎 Stay with @learnRCRussian
The "I'm Not Russian, but..." trend is still blowing up on TikTok.
🔻Foreigners keep making vids to Russian songs, trying to sing along to bangers.
🎤🎵How do you like it?
#news
#learnRussian
😎RCR | Support | Boost
Alaskans have an interest in Russian culture and language.
🔻The state celebrates Maslenitsa, Easter, and other holidays common in Russia.
🔻Irina, an employee of the state's tourism industry, told RT about this.
🔻According to her, many want to study Russian and for their children to study it, but it is not taught in local schools.
Source: rt_russian
📎 Somebody, give them my phone number, please!
#learnRussian
#news
😎RCR | Support | Boost
The "I'm Not Russian, but..." trend is still blowing up on TikTok.
🔻Foreigners are making vids to Russian songs, trying to sing along to bangers, especially from Miyagi & Эндшпиль.
🎤🎵The results are on video!
#news
#learnRussian
😎RCR | Support | Boost
NATO Secretary-General Mark Rutte has warned EU countries that they will have to learn how to speak Russian in 4-5 years if they do not significantly increase the amount of money that they spend on defense, which currently stands at 2% of GDP. He said this in his speech to the European Parliament in Brussels.
"If we do not do this, we will have to start studying Russian in 4-5 years or go to New Zealand," he said.
📎Not that I'm driving at anything but stay with @learnRCRussian and learn some Russian for free with us!😉
Source: TASS
Picture: AIшедеврум
#news
#learnRussian
😎 Subscribe to https://t.me/learnRCRussian
• Секир башка! ⚔️
[si-kir bash-ka]
🔻From Turkic: literally to cut head off- means inevitable punishment (often humorous).
🔻Башка is a pretty rude variant of голова (a head).
Example:
- Ой, я случайно опубликовал твоё видео на You tube!
- Oops, I accidentally posted your video on YouTube!
- Секир башка тебе!
- Секир башка to you! 💀
#spoken_Russian
#LearnRussian
🟠RCR | Support | Boost
Это могли быть мы, но ты занят(а) своим русским.
It could be us but you are busy with studying your Russian.
#just_a_joke
#learnrussian
😎RCR | Support | Boost
Это могли быть мы, но ты занят(а) своим русским.
It could be us but you are busy with studying your Russian.
😴Доброй ночи, товарищи!
#just_a_joke
#learnrussian
😎RCRussian | Support | Boost
Реалистический 🆚️ Реалистичный 🆚️ Реальный
🔢Реалистический
[ri-a-lis-ti-chis-kiy]
Realistic
🔻This adjective describes something following the principles of realism:
• Реалистическая картина
[ri-a-lis-ti-chis-ka-ya kar-ti-na]
А painting following the principles of realism
🔢Реалистичный
[ri-a-lis-tich-nyj]
Realistic
🔻It means practical or true to life:
• Реалистичный план
[ri-a-lis-tich-nyj plan]
A practical and achievable plan
🔢Реальный
[ri-al'-nyj]
Real
🔻It simply means real or existing:
• Реальная проблема
[ri-al'-na-ya prab-le-ma]
Аn actual, existing problem
🎧🗣👇
#tricky_words
#learnRussian
😎 Stay with @learnRCRussian
🔻Russian has nuances that are only understandable to native speakers or advanced language learners. A kind of secret code:). The meaning of a sentence can even depend on intonation.
🔻The words in these sentences might seem identical, but the meaning is completely different!
1.Не надо меня уговаривать.
[ni na-da mi-nya u-ga-va-ri-vat']
I don't agree, and persuasion won't work.
2. Меня не надо уговаривать.
[mi-nya ni na-da u-ga-va-ri-vat']
No need to persuade me, I agree.
😎С пятницей, товарищи!
#tricky_words
#learnRussian
😎RCRussian | Support | Boost
• Заначка (заначки) (femjn.noun)
[za-nach-ka (za-nach-ki)]
🔻It's more than just savings – it's a secret stash for a rainy day, your personal hidden reserve.
🔻The word comes from the colloquial verb:
• Заначить (perf.)
[za-na-chit']
To hide, to stash away
🔻In the past, people hid money in boots, under floorboards, or in books. Today, the hiding spots are just as creative (and unpredictable!).
So, where would your cat hide its заначка?
#useful_vocabulary
#spoken_Russian
#LearnRussian
😎RCR | Support | Boost
🎃 Russia's Ancient "Halloween"
🔻While the world celebrates Halloween on October 31st, Slavic pagans once marked ▶️Велесова Ночь (Veles Night) – the night when the veil between the world of the living and the world of the dead was believed to be the thinnest.
🔻However, there is a modern, folk-humorous name for Halloween in Russia. It was coined by analogy with the traditional Orthodox holidays like Яблочный Спас (Apple Spas). It perfectly captures the Russian tendency to adapt a foreign holiday with a familiar, often agricultural, name:
• Тыквенный Спас
[ty-kvin-nyj spas]
Pumpkin Spas (Saviour)
🔻So, if you find yourself in Russia tonight instead of celebrating Halloween, be sure to celebrate Тыквенный спас! (Especially since there have been discussions about potentially banning Halloween officially due to its satanic atmosphere).
🔻ТыквенныйСпас is considered to be about cooking pumpkin dishes, home decorations, pumpkin games and festive gatherings. This wholesome family holiday offers a Russian alternative to Western Halloween!
🎃Enjoy your pumpkins the Russian way! Happy holiday!Всех обняла!
#Russian_culture
#holidays
#LearnRussian
😎RCR | Support | Boost