Что делать если нужно поставить какую-то 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
🏔️International Mountain Day
🗓Today, we celebrate International Mountain Day — a reminder of the incredible role mountains play in our lives. They provide fresh water, protect unique ecosystems, and inspire millions around the world.
🌱Let’s raise awareness, appreciate nature, and work together to preserve these powerful landscapes for future generations.
#InternationalMountainDay#SustainableFuture#GreenUniversity#YouthForNature#EcoAwareness
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube
🌿 March 3 – World Wildlife Day 🌿
Today we celebrate World Wildlife Day, raising awareness about the importance of protecting wildlife and preserving biodiversity. 🌏 On December 20, 2013, the United Nations officially declared March 3 as World Wildlife Day. This year also marks the 40th anniversary of the 1973 Convention on International Trade in Endangered Species of Wild Fauna and Flora (CITES).
Wildlife has ecological, genetic, social, economic, scientific, cultural, and aesthetic value. That’s why people often seek the peace of wild nature away from noisy cities. 🌲🦉
Our great scholars emphasized respecting nature and maintaining balance:
Muḥammad Muso Khorezmi: “Know that if the eyes of the river weep, sorrow will fall upon it.”
Abu Nasr Farabi: insights on human body, nutrition, and diseases.
Abu Rayhan Beruni: studies on plants and animals, their biological traits and economic importance.
Avicenna (Ibn Sina): advice on health, hygiene, diet, and natural remedies.
❗️ Human impact on wildlife:
1️⃣ Deforestation and habitat loss – ~10 million hectares of forest are lost globally each year.
2️⃣ Extinction of species – over 1 million animal and plant species are at risk.
3️⃣ Air, water, and soil pollution – over 50% of coral reefs degraded; 75% of the Earth’s land affected by climate change and human activity.
4️⃣ Illegal wildlife hunting and trade – threatens more than 2,200 species.
Each of us is responsible for protecting nature, avoiding pollution, and passing it on intact to future generations! 💚🌿
#WorldWildlifeDay#ProtectNature#Biodiversity#WildlifeConservation#EcoAwareness
Green University Hosts Meeting with School Students
⏺As part of the republican stage of the nationwide competition “Do You Know Environmental Laws?”, Green University hosted a meeting with school students from across Uzbekistan.
🗣During the visit, the students met with the Rector of Green University, Dr. Bakhtiyor Pulatov, and other university representatives. The Rector introduced the students to the university’s activities and educational programs, and highlighted the growing importance of environmental protection and climate action.
🟢The meeting served as an important platform for students to exchange ideas and deepen their understanding of environmental responsibility.
#GreenUniversity#YouthForEnvironment#EcoAwareness#Uzbekistan2030 ___________________
Green University maktab o‘quvchilari bilan uchrashuv o‘tkazdi
⏺“Siz ekologiyaga oid qonunlarni bilasizmi?” respublika ko‘rik-tanlovining respublika bosqichi doirasida Green University O‘zbekistonning turli hududlaridan kelgan maktab o‘quvchilari bilan uchrashuv o‘tkazdi.
🗣Tashrif davomida o‘quvchilar Green University rektori, professor Baxtiyor Po‘latov hamda universitet vakillari bilan uchrashdilar. Rektor o‘quvchilarga universitet faoliyati va ta’lim dasturlari haqida ma’lumot berib, bugungi kunda atrof-muhitni muhofaza qilish va iqlim o‘zgarishiga qarshi kurashish masalalarining tobora ortib borayotgan ahamiyati haqida so‘z yuritdi.
🟢Uchrashuv o‘quvchilar uchun fikr almashish, ekologik masalalar bo‘yicha bilimlarini kengaytirish hamda ekologik mas’uliyatni yanada mustahkamlash uchun muhim platforma bo‘lib xizmat qildi.
#GreenUniversity#EkologikTa’lim #YoshlarVaEkologiya#Uzbekistan2030
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube