TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #210 · 3 фев.

Что делать если нужно поставить какую-то 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

Резултати

Пронајдени 1 слични објави

Пребарај: #sanoye

当前筛选 #sanoye清除筛选
Sandiq

@sandiqchamiz · Post #104 · 18.04.2026 г., 19:37

#adabiyot HUSNI TA'LIL – “chiroyli dalillash” demak. Unda shoir biror holatga asl sababni emas (!), o’zi to’qigan yolg’on sababni bog'laydi. Masalan, "Nega bulutdan yomg'ir quyiladi?" degan savolga shoir barcha diniy va ilmiy sabablarni chetga surib, o'z to'qimasi bilan javob beradi: "Yor ishqida holim xarobligini troposferadan ko'rib qolgan bulut rahmi kelib yig'lab yuboradi. Anavi suv yomg'ir emas, bulutning achinish ko'zyoshlaridir". (Deyamush) Qisqasi, husni ta'lilni "kiydirish san'ati" desa ham bo'ladi. Husni ta’lil qanday topiladi? Avvalo, bu san’at bir so’zda emas, balki butunbir baytda bo’lishini bilishimiz lozim. Qolaversa: 1. Baytning MAZMUNIni tushunish kerak. 2. Shoir QAYSI HOLATni izohlamoqchi ekanini aniqlash kerak. 3. Shoirning YOLG’ONi (husni ta’lil) nimadan iborat ekanini topish kerak. 1-MISOL Zanburi asal og’zi to’la shahd ekaninidin, Erningni ko’rub, bemaza deb bol to’kubdur. (Lutfiy) 1. MAZMUNI: Asalarining og’zi asal (shahd)ga to’la ekan. Sening (yorga murojaat qilinyapti) labingni tatib ko’rib, asalari: “Endi asal bemaza tuyulyapti”, - debdi-yu, to’kib yuboribdi. 2. QAYSI HOLAT? Asalarining nega asal qilishi. 3. “YOLG’ON” (husni ta’lil): Asalari go'yo yorning shirin labi oldida o’g’zidagi asalning ancha bemaza ekanini bilgach, asaldan voz kechibdi (uni tashlab yubordi). Izoh: Aslida, asalari o’zi uchun asal tayyorlaydi, boringki, Alloh uni shunday yaratgan. Lekin Lutfiy bu sabablarni chetga surib: “Asalari yorimning labi tufayli asal to’kishni boshlagan. Ungacha asal to'kmas edi”, - deya bizni “kiydirmoqda”. 2-MISOL Yangi oy qoshlari xijlatidin, Oylarda biror-biror ko’rinur. (Atoiy) Keling, bu baytga boshqa usulni qo'llasak. Deylik, Qamchibek ustozi (bu o'rinda Atoiy)dan bir savol so'raydi, ustozi uni "aldaydi". Qamchibek: - Ustoz, nega yangi oy bir oyda bir chiqadi? Ustoz: - Bo'tam, bunga sabab shuki, oy o'zini "Men eng go'zalman, "Miss Universe"man" deb yurar edi. Bir kuni yorning qoshlari o'zidan go’zalroq ekanini ko'rib, aytgan gaplari (karillab qo'ygani) uchun ming xijolat bo’lib, oyda bir martagina ko’rinish beradigan bo'ldi. Husni ta’lil san’atini qo’llash mahorati bo’yicha turkiy adabiyotda Lutfiyga teng keladigani bo’lmagan. Quyidagi birgina baytdagi topilmaga guvoh bo’lib, fikrimiz to’g’riligiga amin bo’lasiz. 3-MISOL Labingdin chun suchuklik qand o’g’urlar, Solurlar el ani suvg’a yalang’och. (Lutfiy) Qamchibek: - Ustoz, nega qandni yalang'ochlab suvga solamiz? Ustoz: - Shuni ham bilmaysanmi, suvni shirin qilish uchun-da. - Bo'tam, bilasanki, o'g'ri qo'lga tushsa, u qochib ketmasligi va xaloyiq yig'ilishi uchun uni yalang'ochlab, suvga (hovuzga) tashlab qo'yamiz. Qand ham o'g'ri: u shirinlikni (chuchuklikni) yorimning labidan o'margan. Shu bois uni ham yalang'ochlab suvga solib qo'yamiz. #sanoye @sandiqchamiz