Что делать если нужно поставить какую-то 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
#admin@cosmosy
✨ В Корее уже 11 апреля, а значит пришло время поздравить наших очаровательных cosmosy с первой годовщиной со дня их официального дебюта!
👍 За этот год девочки подарили нам 2 прекрасных альбома, множество интересных клипов, а также ярких выступлений и образов! Они рассказывают нам свою историю, в которой они одновременно предстают в качестве обычных школьниц, в качестве айдолов и даже мифических существ!
🎉 Желаем cosmosy оставаться такими же милыми и целеустремлёнными! Пусть у них будет как можно больше верных поклонников, а в работе пусть их окружают внимательные и заботливые люди!
🤗 Счастья, здоровья и успехов вам, наши дорогие Химеша, Дихана, Камион и Эймей!
يه جوری لفت میدین ک انگار سيبيلاي معين رو من زدم😐
لباي شهرام صولتي رو من پروتز کردم😐
کليپس رو من ساختم😐
من گفتم پسرا ابرو بردارن😐
من گفتم گلزار اهنگ بخونه😐
سرعت نت رو من اوردم پايين😐
شماره احسان علی خانی رو من دارم😐
که دخترا خواستگار ندارن تقصیر منه😐
کولر خونه رو من خاموش میکنم😐!
خو لفت ندین دیع😐😐😒
#Admin
@dardodelhayeman751
✨Good evening our dear members. How are you doing? Hope you're all fine and safe!
I hope you find the posts useful and you're really doing a great progress in developing listening and reading skills.👍🏻
My advice for you is to listen and read regularly and reinforce them through answering the quizzes after each recording.🎧
Best wishes!🌹
✍🏻#admin
✨Good afternoon, dear friends.🌸
Be ready for tonight's quiz onThe First, Second&Third Conditionalslessons. So kindly, give them a quick review!🙂
✍🏻#admin
✨ Good evening dear friends 🌸
How are you all doing? Hope you're doing great and making a good use of your time at home!🙂
Kindly, review all the lessons about the future above👆🏻and be well prepared for the quiz tonight, God willing.
I expect to see more interaction than before. The more you participate in answering the questions, the more you understand the grammar rules and guidelines.👌🏻
Stay home, wash your hands regularly and be safe.😊
✍🏻#admin
Good evening dear friends! 🌺
Are you ready for tonight's quiz? I'm sure you are!👍 It's gonna be on the last two lessons:Going to and Will.
Stay home and be safe.🙂
✍🏻#admin
Good evening dear friends.🌸
Kindly, review the last two lessons on the past perfect simple and past perfect continuous for tonight's quiz, God willing.😊
Please, stay home and be safe! 🤲
✍#admin
@EnglishGrammarSecrets
Dear members!✨
This is your channel, so if you have any comment, suggestion or question, feel completely free to send it here👇.
@EnglishGrammarSecrets_bot
✍#Admin
https://medium.com/django-musings/customizing-the-django-admin-site-b82c7d325510
Customizing the #Django#Admin site
Let’s start by saying that Django’s admin site is spectacular. It can literally save you months of work, but having said that, one thing that one needs to understand is that Django’s admin site is only ok as an internal tool. It is not, and never has been intended to be, an end user tool.
✨Good morning, dear friends. Have a wonderful day ahead.☀️
Be ready for tonight's #quiz onMixed Conditionalslesson. So kindly, give them a good review!💪🏻🙂
✍🏻#admin