Что делать если нужно поставить какую-то 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
#TATU
#UZCARD
📆 Bugun, Muhammad al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universiteti hamda Yagona Respublika protsessing markazi (UZCARD) hamkorlikda, talabalarning kelajakdagi kasbiy faoliyatiga bo‘lgan ishtiyoqini oshirish, ularning bilim ko‘nikmalari va malakalarini yanada rivojlantirish, real ish muhiti sharoitida amaliy tajribalarini orttirish va stajirovka o'tashlari uchun sharoit yaratish maqsadida, Dasturiy injiniring, Kompyuter injiniring va Axborot xavfsizligi ta'lim yo‘nalishi talabalari uchun maxsus amaliy tashrif tashkil etildi.
👥 Bunda talabalar, UZCARD kompaniyasi faoliyati, mutaxassislarga yaratilayotgan sharoitlar, ish jarayoni qanday kechishi, mavjud bo'limlari va soha mutaxassislari bilan yaqindan tanishdilar.
🗣 Tashrif davomida, UZCARD kompaniyasining ko'p yillik tajribaga ega mutaxassislari, Ta'lim va rivojlanish bo'yicha bosh mutaxassis Asilxoja Iskandarxojayev va Kadrlarni jalb qilish va rivojlantirish bo‘yicha menejer Kulmatova Kamila tomonidan talabalarga, Terminallarga xizmat ko'rsatish, yosh iqtidorli talantlarni izlab topish, dasturiy ta'minotning mijozlarga xizmat ko'rsatishgacha bo'lgan jarayonlari kabi mavzularda qiziqarli master-klass o'tkazildi. Shuningdek, Kadrlarni jalb qilish va rivojlantirish bo‘yicha menejer Kulmatova Kamiladan, kompaniyada pullik stajirovka jarayonlarida ishtirok etish va ishga kirishda kerak bo'ladigan eng muhim bo'lgan ma'lumotlar bilan tanishish imkoniyatiga ega bo'ldilar.
🤗Bizni kuzatishda davom eting!
🔘 Eng so'nggi vakansiyalar
💙@tatu_karyera_markazi
✅TATUda Press klub o‘z faoliyatini boshladi
Bugun, 28-iyul kuni Muhammad al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universitetida Press-klubning ochilish marosimi bo‘lib o‘tdi.
Batafsil: 👉https://mitc.uz/uz/news/view/2834
🔹🔹🔹
✅ В ТУИТ начал свою работу пресс-клуб
Сегодня, 28 июля в Ташкентском университете информационных технологий имени Мухаммада ал-Хоразмий прошла церемония открытия Пресс-клуба.
Подробно: 👉https://mitc.uz/ru/news/view/2834
#TATU
#pressklub
📌 Telegram|Twitter|Facebook|Instagram|Youtube
✅ TATUda o‘quv jarayonlarini jahon standartlariga mos ravishda amalga oshirish bo‘yicha KOICA bilan samarali hamkorlik olib borilmoqda
Bugun, 31-mart kuni TATUda “Integratsiyalashgan universitet axborot tizimini tashkil etish va taqdim etish” loyihasining yakunlanishi bo‘yicha tadbir bo‘lib o‘tdi.
Unda AKT vaziri Sh. Shermatov va Koreya xalqaro hamkorlik agentligi (KOICA) vakillari qatnashdi.
Batafsil: 👉https://mitc.uz/uz/news/view/3756
🔹🔹🔹
✅ Осуществляется плодотворное сотрудничество с KOICA целью реализации учебных процессов в ТУИТ в соответствии с мировыми стандартами
Сегодня, 31 марта, в ТУИТ прошло мероприятие, посвященное завершению проекта «Организация и предоставление информационной системы интегрированного университета».
В нем приняли участие Министр ИКТ Ш. Шерматов и представители Корейского агентства по международному сотрудничеству (KOICA).
Подробно: 👉https://mitc.uz/ru/news/view/3756
#mitc
#tatu
#koica
📌 Telegram|Twitter|Facebook|Instagram|Youtube
#nuu
#tdsu
#tatu
#tdiu
Bot statistika yordamida ayrim yoʻnalishlarning oʻtish ballari 99% aniq! (1,2 ball farq qilishi mumkin)
1. Oʻzbekiston Milliy universiteti ( Geografiya (kunduzgi, oʻzbek)) - 93 ball
2. Toshkent Davlat Texnika universiteti ( Biotibbiyot muhandisligi (kunduzgi, oʻzbek)) - 110 ball
3. Toshkent Davlat Texnika universiteti ( Energiya tejamkorligi va energoaudit ( kunduzgi, oʻzbek)) - 60 ball
4. Toshkent Davlat Iqtisodiyot universiteti ( Bank ishi va auditi ( kunduzgi, oʻzbek)) - 137 ball
5. Toshkent Davlat Iqtisodiyot universiteti ( Marketing, tarmoqlar va sohalar boʻyicha ( kunduzgi, oʻzbek)) - 128 ball
6. Toshkent Davlat Agrar universiteti ( Biotexnologiya, tarmoqlar boʻyicha (kunduzgi, oʻzbek)) - 102 ball
7. Toshkent Davlat Sharqshunoslik universiteti ( Jurnalistika, xalqaro jurnalistika (kunduzgi, oʻzbek)) - 129 ball
8. Toshkent Davlat Transport universiteti (Iqtisodiyot, temir yoʻl transporti (kunduzgi, oʻzbek)) - 98 ball
9. Oʻzbekiston Milliy universiteti ( Amaliy matematika (kunduzgi, oʻzbek)) - 131 ball
10. Toshkent Axborot texnologiyalari universiteti ( Dasturiy injiniring (kunduzgi, oʻzbek)) - 108 ball
Biz sizlarga koʻpchilik topshiradigan 10 ta yoʻnalishning oʻtish ballarini eʼlon qildik (bu aniq shu ball boʻladi degani emas ammo 90% toʻgʻri)
Yana kimga qaysi yoʻnalish kerak boʻlsa kommentariyada yozib qoldiring!
Mandat rasmiy boti: @mandat_2022_uz_bot
👉https://t.me/+dNPnpggKqAdiYjVi
Barcha abituriyentlarga joʻnatamiz!
@mandat_natijalari_2022_uz