Что делать если нужно поставить какую-то 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
Hello everyone!
Our guest speaker for today is sick, so Today, we will have a shorter version of our weekly 19:00 chat session. It will be solely focused on YOUR questions to us. Let’s practice your English!!! 💬🇺🇸
We are looking forward to connecting with you in 15 minutes!
#SPEAKENGLISH#QandA
🦵 Here are 5 English phrasal verbs with ‘kick’ for you. Kick back and read them and then have a go at the quiz – and see if you can use any of them in a sentence of your own! (Images: Getty)
#vocabulary#speakenglish#englishtips
We are super excited for you to meet our friend, Bekzod Kholmurodov, an Uzbekistan-born sophomore student at Drexel University, USA this Saturday, at 19:00 Tashkent time! Don’t miss this unique opportunity to learn from someone who has an invaluable experience of coming to the US as an international high school student first, and now is a college student as a El-Yurt Umidi scholar!
Invite your friends and get your questions ready!!
#UzbeksInAmerica#SpeakEnglish#OneStepAtATime
🇺🇸🤝🇺🇿
🥊 There are quite a few English phrasal verbs with ‘hit’ – here are 5 of them to learn and use. 👋 Have a go at the quiz – and see if you can use any of them in a sentence of your own! (Images: Getty)
Extra: Click on our link in bio to learn 4 phrases with 'hit'.
#learnenglish#vocab#vocabulary#speakenglish#englishtips
Let’s be real: You’ve probably seen a list like this 1,000 times. It looks repetitive, maybe even "dumb." But here is why it actually matters for you:
When you only have one word for everything (like "Good"), your brain "glitches" when you're trying to speak fast. You hesitate because you're searching for variety but your "vocabulary folder" is empty. 🧠
The Secret to Speaking Fast:🛫
Fluency isn't about knowing the hardest words; it's about having options. When you have 3-4 ways to say the same thing, your brain doesn't have to stall. It just picks the next available word and keeps the flow going.
-
#English#SpeakEnglish#EnglishTips#Vocabulary#SpokenEnglish
Group: English Chatting House | Global English Speaking Chat
Members: ~4.48K
💢 Username: @english_chatting_house
Description:
⭐ Welcome to ECH! English only - global English chat, spoken English practice, fun talks & chill worldwide vibes. Talk English, meet international people, improve fluency, keep it clean. No beef, no hate, no promo. Got any queries? :- @Bilxerian
🏷 Tags: #languages
#learnenglish#englishchat#speakenglish#englishgroup#globalchat
https://telegramchannels.me/groups/english_chatting_house
Idiom of the Day!
🚌 Throw someone under the bus
Meaning: To blame someone else so you don't get in trouble.
Example: "Mark made the mistake, but he threw me under the bus!" 😠
#LearnEnglish#EnglishIdioms#Vocabulary#ESL#EnglishPhrases#SpeakEnglish
Do you know someone who always thinks that everyone else has a better life than them?! 🙄😅 Scroll through the images to find out how to use ‘the grass is always greener on the other side’ 🌱, and don’t forget to answer the questions on the last slide!
EXTRA: Could walking 7,000 steps a day could improve your mental health? 🚶 Click the link in our bio to find out and learn some useful vocabulary in the process! 📰💚
Image: Getty
#vocabulary#learnenglish#englishlanguage#expression#idiom#proverb#englishclass#speakenglish
You know when somebody just WON’T change their ways? 😠 We’ve got an English expression for that! ✅
Scroll through the images to find out how to use ‘You can’t teach an old dog new tricks.’ ❌🐶
Can you use it in a sentence – and do you have a similar expression in your language? 👇👇👇
MORE: If you'd like to learn some more animal idioms, like 'rabbit on 🐰' or 'as sick as a parrot 🦜', click the link in our bio!
Image: Getty
#trick#proverb#learnenglish#vocabulary#learnenglish#englishlanguage#expression#idiom#englishclass#speakenglish
Here are 5 linkers that you can add to your conversation to make it flow better and sound more fluent!
1) To be honest – I’m going to give my opinion (even if it’s insulting!)
2) Actually – to correct information or say something surprising
3) Mind you – I’ve just thought of something that contrasts what I was saying
4) By the way – I’m going to introduce a new topic I’ve just remembered
5) Anyway – I’m going to finish the conversation or change topic now
Add them to your conversations to help them flow! Which one is your favourite?
#learnenglish#speakenglish#vocabulary#bbclearningenglish#britishenglish#formalenglish#linkers#naturalenglish#nativespeakerenglish#conversationskills#ncoversationalenglish
🚀 Power up your English vocabulary with these FIVE phrasal verbs with ‘pay’! Take a look 👀 and then practise using them right now in the comments! 🤔 Do you know any more phrasal verbs with ‘pay’?
(Images: Getty)
🎧 Click on the link in our bio to listen to Neil and Georgie talk about money!
#phrasal#phrasalverb#pay#payoff#payout#payup#payfor#learnenglish#vocab#vocabulary#speakenglish#englishtips