Что делать если нужно поставить какую-то 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
Ba’zan ayrim "korchalon mutaxassis”lar o‘zini bozorga solib:
— “Dizaynni-ku maning o‘zim juda zo‘r bilaman, ammo o‘sha dizayn-pizayn qib o‘tirishga voqtim yo‘qroq. O‘ziz dizayn qib bering.”
Shunday paytlarda bunaqangi ish palon pulga aylanadi, desam:
— “O‘h-xo‘o‘... Ja qimmat etvormadizmi? Man bu dizaynlani narxi nech pulga aylanishini juda yaxshi bilaman” va hokazo naqldagi xabarlar yozib turishadi...
Shunga o‘xshash holatlarda bunday “korchalon”lar bilan biror kelishuvga erisha olmasligimizni anglagan holda, ularni boshqa dizaynerga yo‘naltirib yuboraman.
Aslida-ku, har kim o‘z ishini qilgani ma’qul. Dasturchi yoki boshqa kishi kelib dizaynerga “aqllilik” qilishi, uning kim bo‘lishidan qa’ti nazar, bozordagi narx-navoni bilib-bilmay turib, narxlarni o‘zim belgilayman, deyishi umuman aqlga to‘g‘ri kelmaydigan, nodonlarcha ish tutishdir!
Bunday kimsalar xatti-harakatlarini tahlil qilib, ularga baho berib ko‘rganimda, shuni anglayman-ki, ularning birortasi ham mazkur sohada arzigulik tajribasi yo‘q, "yuzama-yuzaki bilim olgan" (“o‘zicha mutaxassis”) kishilar (ba’zida, dasturchilar ham) bo‘lib chiqishadi. Oxir-qibat, aynan mana shuning uchun ham, bu kabi kimsalar bilan aslo ish ko‘rmaslikka intilaman...
Men birorta ustasi farang dasturchilar bilan ishlagan taqdirimda ham, ulardan biror marta ham:
— “Eee... Dizaynning manavi joyini mana bunaqa qilish kerak edi” yoki “Shuni o‘rniga dizaynni mana bundog‘ qilganingiz tuzukroqmasmidi?" kabi ihtehzolar eshitmaganman.
Hattoki, mobil ilovalar dasturchilari ham o‘zlarini sipo tutadilar. Ular:
— “Chamalanayotgan funksiyalar o‘ta murakkab bo‘lgan taqdirda ham, ularni amalga oshirish men uchun juda qiziq”, – deyishadi.
Binobarin, ular dizaynerning ishiga aralashmagani singari, narx-navo borasida ham hech tortishib o‘tirmay, o‘zlariga monand "yo‘g‘on-yo‘g‘on" narxlarni ovoza qilishadi...
Tan olish kerak, hozirgi kunda bozorda ochiqdan ochiq ayrim “noshud-u notavon” dizaynerlar ham, "tutruqsiz" dasturchilar ham uchraydi, hamda ular o‘z xizmatini choychaqagayam arzimaydigan o‘ta "past" narxlarga sotishgayam rozi. Ular tomonidan “qo‘l uchida apil-tapil” bajarilgan mahsulot bilan hamma tan olgan "ustasi-farang" mutaxassislar ishini tenglashtirish – bunday jiddiy yumushga g‘irt ahmoqona “surbetlarcha” yondashuvdir!
"Ustasi-farang" mutaxassislar mijozning "ojizona" byudjetiga zor emas. Bunaqangi vaziyatlarda mijoz ham o‘z fahm-farosatini mundoq ishlatib, mutaxassislar saviyasi orasida farqqa to‘g‘ri baho berishi lozim yoinki mo‘ljal qilinayotgan byudjetni "dadilroq" qilib aytaverishi o‘zining maqsadiga muvofiqdir.
@suxrobblog | #fikrlar
Chetda AI (sunʼiy intellekt) shiddat bilan rivojlanyapti. Oʻzimizda hali bironta AIʼga oid StartUp odamlarni muammosini yechaman degan xolis gʻoyani ilgari surganini koʻrmadim, faqatgina moddiy foyda oʻylashganliklarini sezyapman xolos.
Yemagan StartUplar 100,000$ invistitsiya olgani bilan yemaganligicha qoladi. Chetdan esa, bitta AI chiqib uni sindirib qoʻyadi va tamom.
Masalan, oʻzbek tili imlo va qoidalari boʻyicha ChatGPT, grok ancha oldinlab qoldi, tutuq belgisi, «oʻ, gʻ» qoidalarigacha aytib beryapti. Biroz kamchiliklari boʻlishi mumkin, ertaga yana ham kuchayadi. Bitta tilni tashlab ketsa ham, ularda katta yoʻqotish boʻlmasdi deb oʻylayman. Lekin unday yoʻl tutishmadi. Demak, maqsadlari katta. Bu maqsadlari faqatgina moddiyat bilan bogʻlanmagan deb hisoblayman.
Sababi, Oʻzbek auditoriyasidan premium obuna sotib olishlarini kutish juda past koʻrsatkich ekanligini katta ehtimol bilan bilishadi. Masalan, boshqa sotuvi yuqori auditoriyanini oʻzini qamrab olsa ham yetarli edi...
Xulosa sifatida aytingchi, sizchi AIʼga oyiga qancha pul sarflayapsiz?
#fikrlar#AI
"1 yil ishlab middle+ boʻlish" haqida fikrim
Dizayn sohasini oʻrganishga kirishgan kishi, (5-7 oylik deylik) kursni tugatdi va u 1 yil shu sohada ishladi. Bu vaziyatda u, salohiyat tomonlama middle darajaga chiqa olmaydi.
Hatto, 2-3 yillik tajribam bor degan dizaynerlarda ham salohiyat tomonlama, kamchiliklari bor. Bu narsa faqat Oʻzbekiston bozorida emas. Boshqa bozorlarda ham, masalan, men 2 yilga yaqin vaqt davomida Ukrainalik dizaynerlarni ham ishlarini kuzatib kelaman, ularda ham shu kabi, kamchiliklari bor. Boshida, ishlarini koʻrib, yaxshi chiqibdi deb hisoblardim, hozir esa aksi.
Sohaviy tomonlama, nazariy va amaliy jihatlardan dizayner kuchli koʻnikmalarini shakllantirishi oʻta muhimdir. 1 yil ishladim, boʻldi, yorib tashlayman degan, sterotipni miyadan chiqarib tashlash kerak. 1 yilda ja borsa, sohani anglab olsa katta gap.
Dizayn, bu rivojlanish sohasidir!
— Sohaga kirib kelganimdan qariyb, 6 yildan oshib qoldi, qancha oʻrgansam ham bilmagan narsalarim koʻp ekanligini his qilaman.
Dizayn "qisqametrajli film" kabi emas, bu "turk seriali" kabidir. Ichida ikir-chikirlari juda koʻp, sabringiz yetmasa, boshqa kanalga oling )
@suxrobblog // #dizayn#fikrlar
Gradient
Yaqinda bir nechta dizaynerlarning ishini ko‘rgandim, background’ning har joyiga gradient berib qo‘yishgan, natijada dizayn ko‘zga yoqimsiz ko‘rinishga kelib qolgan ekan. Aslida dizaynda gradient ishlatish yaxshi. Lekin gradientni ham o‘rnida va eplab ishlatish kerak. Aksiga olib, gradientsiz holatda taqdimot qilishganda ham ko‘zga yoqimliroq ko‘rinar edi, nazarimda.
Umuman olganda, UI dizaynida gradientlar bilan ishlashda o'tkir va keskin ranglardan ko‘ra, sokinlikni ifodalovchi, yumshoq va bilinmas gradientlardan foydalanish maqsadga muvofiq. Bu esa ko‘rish uchun yoqimliroq taassurot qoldiradi.
— Tavsiya, gradient ustidan qora rangli matn yoki qora rangli elementlar ishlatmaslikka harakat qiling. Uni oʻrniga gradient ustiga ishlatadigan matnlaringiz boʻlsa oq rangda qoʻllashga moslashtiring. Odatda gradient bilan uning ustidagi qora ranglar chiqishmaydi, yoinki yoqimsiz koʻrinadi.
@suxrobblog | #fikrlar#gradient
Jamiyatimizda erkaklarni zaiflashtirishga oid kontentlar juda ham ko'payib ketyapti ekan. Yaqinda youtubeda mana bu klip chiqib qolibdi playlistimda.
Bu kabi o'zbek kliplarini ko'rmayman odatda, lekin yaqin orada bir ikkita shu kabi ashulachilarni klipiga e'tibor qilsam, yigitlarni "chumo" qilib tasvirlashga harakat qilayotganiga guvoh bo'laman. Bir klipda ayoli xiyonat qilishi tasvirlanyapti. Eri o'ynab qo'shiq aytib yuribdi. Ma'no nima bundan o'zi?! Sevgidan kuygan "tuboy"lar ko'radida endi shuni...
Yaqinda davlat tashkilotlaridan birida ishlaydigan opa menga savol beryapti, "... Sizni ham sevganingiz bo'lganmi? ... Nima bo'lgan sizni tashlab ketganmi? ...", krinch savol😂.
Opaga qarab, samimiy ohangda, "birovni ketidan itga o'xshab likillab yuradigan, odamga o'xshaymanmi?..." dedim...
Bunaqa savolga o'xshash savollarni kam bo'lsa ham eshitib turaman. Kim nima desa desin-u, jamiyat mafkurasi bir joyiga qarab "kirib" ketyapti.
Yangiliklarni kuzatsak ham, ularning saviyasi qay darajada ekanligini bilib olamiz...
Yigitlar sevgi deb o'z joniga qasd qilyapti ekan, bu narsalar itni orqa oyog'idan bo'lishdan boshqa narsa emas. Mana shuni ko'rmasam, it bo'lay deydimi, shuni ko'rsam, iti bo'lsam ham mayli deydimi, hezalakmi nima balo bular?!
Yoshlar orasida saviyani oshirish kerak, ota-onalar bolasiga qattiq turishi lozim, kim bilan gaplashyapti, yondagi kishilar kim, odammi, itni orqa oyog'imi?...
Alqissa, katta ehtimol bilan, zalolatda qolib ketgan, yuqori qatlamni tuzatib bo'lmaydi, ularni nafsi ham o'zlari bilan teng, ularni tezroq kuzatib qo'yish lozim, lekin yosh va tajribasiz nafsni davolashga imkon bor...
#fikrlar#yigitlar
Gradient
Yaqinda bir nechta dizaynerlarning ishini ko‘rgandim, background’ning har joyiga gradient berib qo‘yishgan, natijada dizayn ko‘zga yoqimsiz ko‘rinishga kelib qolgan ekan. Aslida dizaynda gradient ishlatish yaxshi. Lekin gradientni ham o‘rnida va eplab ishlatish kerak. Aksiga olib, gradientsiz holatda taqdimot qilishganda ham ko‘zga yoqimliroq ko‘rinar edi, nazarimda.
Umuman olganda, UI dizaynida gradientlar bilan ishlashda o'tkir va keskin ranglardan ko‘ra, sokinlikni ifodalovchi, yumshoq va bilinmas gradientlardan foydalanish maqsadga muvofiq. Bu esa ko‘rish uchun yoqimliroq taassurot qoldiradi.
— Tavsiya, gradient ustidan qora rangli matn yoki qora rangli elementlar ishlatmaslikka harakat qiling. Uni oʻrniga gradient ustiga ishlatadigan matnlaringiz boʻlsa oq rangda qoʻllashga moslashtiring. Odatda gradient bilan uning ustidagi qora ranglar chiqishmaydi, yoinki yoqimsiz koʻrinadi.
@suxrobblog | #fikrlar#gradient
SoliqUz dasturining xizmatlar sahifasining redizayni
— Rangli ikonkalar ishlatilingan, keyinchalik ikonkalar ustida ishlash uchun AI dizayner bilan ishlab, rivojlantirib borsa ham bo'ladi.
— Dasturdan keksalar foydalanishini ham inobatga olinishi kerak edi, lekin o'ylab qaralsa, yoshi katta kishilarni aynan o'zlari dasturdan foydalanish ehtimoli past, ularga yoshlar ko'maklashi mumkin. Zamon rivojlanib bormoqda biz ham moslashib borishimiz ham lozim...
Quyida suratning sifatli faylini ham yuborib qo'yaman. Fikrlaringiz bilan bo'lishishingiz mumkin)
@suxrobblog
#soliquz#redizayn#fikrlar
"SoliqUz" dasturini redizayn qilishga kirishdim. Sizlarning ham fikrlaringiz muhim, bu dasturdan deyarli foydalanmayman, shu sababli, eng muhim, kerakli boʻlimlarni izohlarda yozib ketsangiz boʻladi)
Bundan tashqari, "Bottom Navigation Bar"ni nomlab chiqmoqchiman, nega deganda, ikonkani oʻzi bilan foydalanuvchilarga sahifa boʻyicha maʼlumotni yetkaza olmasligi mumkin.
Nomlash boʻyicha misol variantlar: — "Asosiy", "Mening sahifam" yoki "Profilim", "Monitoring", "Xizmatlar"...
@suxrobblog
#soliquz#redizayn#fikrlar
Linkidenda Muzaffar Fozilov, dizaynerlar orasidagi ogʻriqli muammodan birini yozgan ekanlar(Screenshotda koʻrishingiz mumkin)
Bu post boʻyicha izohda yozgan fikrimni quyida yozib qoldiraman:
— «Toʻgʻri aytasiz !
Oʻzlarini shu kabi yuqori darajalarda baholab olayotgan koʻp, nafaqat dizaynda, balki boshqa yoʻnalishlarda ham, masalan dasturlashda ham xuddi shu vaziyat deb oʻylayman. Dasturchi ham, dizayner ham oʻziga baland baho berib, topshirilgan proektlarni bajara olishmagan holatlarni koʻp koʻrdim (oʻzim ham bir qancha proektimda dasturchi va dizayner ishlatganman). Dehqoncha usulda ishlab yuradi va oʻzini "Seniorman" deb atab olishadi...
Dizaynerni darajasini, dizaynga aloqasi yoʻq shaxslar baholab berishi, notoʻgʻri deb hisoblayman.
Sohani ikir-chikirlaridan xabari bor, yuqori malakali dizaynerlar dizaynerni darajasini belgilab bergani maʼqul. Yaʼniki dizayner muammoga qanday yechim beryapti, yechimlarini isbotlab bera olyapti hakozo. Bularni aniqlash va belgilab berish uchun (kompaniya ortidagi shaxs) dizayn boʻyicha katta tajribasi boʻlishi kerak.
Oʻzbekistonda maʼlum (kichikroq) kompaniyalarda deyarli, yuqori darajadagi mutaxassislar ham mavjud emas deb oʻylayman. Aytganingizdek oʻzlarini oʻzi baholab olishgan. Shu kabi "mutaxassislar"ni fundamental bilimlarni bilishlariga ham shubham bor...»
— deb fikrimni linkidenda qoldirgandim. Va kanalga ham ulashib qoldiryapman. "Kimlargadir" yetib borar-a?!...
@suxrobblog
» #senior#junior#dizayner#fikrlar#linkedin