Что делать если нужно поставить какую-то 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
Bottom Sheets'dan samarali foydalanish yo‘riqnomasining sifatli varianti
✳️ O'quv kurslari va turli xil (ta'lim berish) maqsadlarda muallifni eslatib o'tgan holda ishlatish tarqatish mumkin!
@suxrobblog | #mavzu#bottom_sheet
Bottom sheet (pastdan chiqadigan oynacha) nima?
Bottom sheet — bu ekranning pastidan chiqib, sahifani almashtirmasdan qo‘shimcha ma’lumot yoki harakatlarni ko‘rsatadigan mobil UI elementidir. Ular asosiy kontentni yopmasdan, kerakli paytda qo‘shimcha ma’lumot yoki funksiyani ko‘rsatishga yordam beradi.
Bu degani har doim ham bottom sheetni hamma yerga ishlatish kerak degani emas, dizaynerlar.
Noqulay dizayndagi bottom sheetlar foydalanuvchini chalg‘itadi: agar yopish oson bo‘lmasa, bir nechta sheet ustma-ust chiqsa yoki kerakli kontentni to‘sib qo‘yilgan bo'lsa...
(↗️ Yo'riqnomani PDF faylini yuklab olish)
@suxrobblog | #mavzu#bottom_sheet
UX dizayn ortidagi haqiqat...
UX dizayn – bu faqat chiroyli ko‘rinish emas, balki foydalanuvchi ehtiyojlariga moslab ishlab chiqilgan tizimli yondashuv. Har bir tugma, sahifa oqimi, joylashuv — bular ortida logika, tahlil va tajriba yotadi.
Yaxshi UX dizayn bo‘lsa:
1. Platformaning struktura va navigatsiyasi aniq bo‘ladi,
2. Foydalanuvchi chalkashmaydi,
3. Dasturchi aniq yo‘l-yo‘riq bilan ishlaydi,
4. Ishlab chiqish jarayoni tezlashadi, xatolar kamayadi,
5. Va nihoyat, mahsulot muvaffaqiyatli chiqadi.
Shuning uchun UX dizayn — sarmoya hisoblanadi. Va bu xizmat arzon bo‘lishi kutilmasligi lozim. Chunki u platformaning asosiy poydevorini tashkil qiladi.
UX bo‘lmasa nima boʻlardi:
— Foydalanuvchi chalkashadi: sayt tushunarsiz bo‘ladi;
— Dasturchi yo‘nalishsiz ishlaydi: strukturani tuzishga qiynaladi va yana ham koʻproq toʻlov soʻraydi.
— Koʻproq vaqt sarflanadi: Kutilgan natijaga erishish uzoq vaqt talab qilishni boshlaydi.
Qisqasi: UX yo‘q joyda, muammo tug‘iladi.
Startup va bizneslar UXʼsiz zararga tushishganliklari haqida kelgusi postlarda yozaman.
@suxrobblog
#ux#mavzu#muammo
Mijozdan to'lovni oldindan olish kerakmi?
Ha, ayniqsa frilansda ishlayotgan bo‘lsangiz, to‘lovni oldindan olganingiz ma’qul. Har bir mijoz har xil bo‘ladi: kimdir vijdonan haqini to‘laydi, kimdir esa kechiktiradi yoki umuman to‘lamasligi ham mumkin. Shuning uchun quyidagi yondashuvlarni tavsiya qilaman:
Frilans buyurtmalari uchun:
1️⃣Oldindan to‘lov olish – ishga kirishishdan oldin kamida 30-50% oldindan to‘lov olishingiz tavsiya etiladi.
2️⃣Bo‘lib-bo‘lib to‘lash – loyiha bosqichlarga bo‘linib, har bir bosqich tugagandan keyin to‘lov olinishi mumkin.
3️⃣Kelishuv (shartnoma) – agar mijoz bilan uzoq muddatli ishlashni rejalashtirsangiz, hujjatlashtirilgan kelishuv yoki shartnoma asosida ishlash yaxshi variant.
Oylikka ishlash bo‘yicha:
1️⃣ Agar oylik ishga kelishilgan bo‘lsa, 15-sanasigacha avans (oldindan to‘lov) talab qilish mumkin. Bu sizga ishingizni ishonch bilan bajarishda yordam beradi.
2️⃣ Shuningdek, muntazam to‘lov tizimi o‘rnatilgan bo‘lishi kerak – masalan, har oyning 15-30 sanalari oralig‘ida hisob-kitob qilinishi.
To‘lov borasida aniq kelishib olmaslik sizni xavf ostida qoldirishi mumkin. Shuning uchun har doim mijoz bilan oldindan kelishuv qilib, eng kamida 50% oldindan to‘lov olishni odat qiling. Doimiy mijoz bo‘lgan taqdirda ham, to‘lov tartibini aniq belgilagan ma'qul.
@suxrobblog
#mavzu#mijoz#savol_rublikasi
Dizaynda “yo‘q” deyish tamoyili
Mijoz bilan ishlaganda har bir talabini bajarish – sizni yaxshi dizayner qilmaydi. Ba’zan “yo‘q” deyish ham professionallikning bir qismidir.
Dizayner sifatida har bir mijoz yoki jamoa talabiga rozi bo‘lish natijani yaxshilamaydi, aksincha, sifatsiz dizaynga, ortiqcha stress va keraksiz vaqt sarflashga olib kelishi mumkin.
Dizaynda “yo‘q” deyish tamoyili nima oʻzi? Bu dizayn jarayonida asosli va professional cheklovlar qo‘yish qobiliyatidir. Agar shu asosli cheklovlardan oʻtilganda "yoʻq" deyish nazarda tutilyapti.
Mijoz bilan endi ishlashga kirishganda narx aytdingiz, "###$ boʻladi", desangiz. Mijoz, "Mayli, faqat mana bu ishlarni ham qoʻshib qilib bering", desa, yaʼniki ishingizni ustiga 50% ish qoʻshib beryapti. Bu vaziyatda yoʻq deb aytgangiz maʼqul. Kechasi bilan ishlab, koʻzlaringiz qizarib chiqqaniga, mijozdan olgan pullaringiz koʻzingizga koʻrinmaydi ham.
"Mijoz ketib qoladi", deb narxni past aytgan taqdiringizda ham, qadarga yozilmagan boʻlsa, arzon aytsangiz ham ketib qoladi. "Yoʻq" deyish bilan rizq kamayib qolmaydi deb hisoblayman. Va oʻzim ham, oʻzimga yoqmagan ishlar chiqqanda buyurtma sifatida qabul qilmayman yoki boshqa sabablar. Shuningdek, soha boʻyicha prinsiplarimga doim qatʼiy amal qilishga harakat qilganman va boshqalarga ham shuni tavsiya qilaman...
P.S. Blogdagi postlar shaxsiy fikrlarim orqali yozib boraman. SI yozib bermaydi)
@suxrobblog
#mavzu#mijoz#prinsiplar
Oʻzbekiston bozorida UX/UI dizayn boʻyicha mutaxassislar yetarli emas. Grafik dizaynerlar esa bu yoʻnalishni ham oʻrganib borishlari lozim
Nega va sabab?
— Nega deganda, avvalo grafik dizaynga qaraganda UX/UI dizaynda koʻproq daromad topish mumkin, bu sir emas. Bir ikki kunda 300-500$ gacha daromad topishingiz ham mumkin, masalan.
Men nega buni aytyapman?!
— Avvalo sohada koʻproq mutaxassislar paydo boʻlishini istayman. Oʻzaro rivojlanishga turtki boʻladigan kadrlar yetishib chiqishi boshqa dizaynerlar rivojiga ham hissa qoʻshishi mumkin.
Grafik dizaynerlar bu sohaga tezroq moslasha oladimi?
— Albatta. Hozirda oʻzimizni bozorda UX/UI dizayn boʻyicha yaxshi keyslarni koʻrmaganimga ham ancha boʻldi, aksar hollarda shablonlar ishlatilyapti. Deadlineʼlar qisqa, tayyor resurslardan foydalanish holatlari koʻp uchrab turadi, bu esa sohaga yangi kirib kelganlar uchun ham tezroq moslashishga imkon beradi.
Grafik dizayndan soʻng UX/UI dizayn bu menimcha keyingi bosqich deb oʻylayman. Koʻproq minimalizm bilan ishlash ortiqcha bosh ogʻrishini keltirib chiqarmaydi. Shuningdek, grafik dasturda murakkab funksiyalar bilan ishlash kabi bir qancha bosh ogʻriq ishlaridan qutulasiz. Bu jarayonda dizayner ancha yengillab qoladi. Va sohadan yana ham zavq olib boradi...
Xoʻsh grafik dizaynerlar UX/UI dizayn yoʻnalishini ham oʻrganishga kirishamizmi?
Men grafik dizaynerlarga bepul tarzda UX/UI dizaynga qadam qoʻyishlari boʻyicha bosqichma-bosqich kontent tayyorlab borishni rejalashtiryapman. Izohdagi fikrlar boʻyicha postlar yozib bormoqchiman hozircha.
@suxrobblog
#mavzu#grafik_dizayn#uxui_dizayn
Dizayn bo'yicha buyurtma olish uchun o'zimizda frilans guruhlari bormi?
— Aynan, UX/UI dizayn bo'yicha buyurtma olish bo'yicha o'zimizda guruhlar mavjud emas. Lekin...
✅Mijozlar topish bo'yicha tavsiyalar berib ketishim mumkin, lekin:
1. O'z ustingizda ishlang, portfolio'da ishlar soni va sifatini oshiring;
2. AyTi'ga aloqador tanish bilishni ko'paytiring, turli xil dasturchilar meetup'lariga ham borib turishingiz mumkin, shunda ular bilan tanishib kontaktlashib turishingiz mumkin. Bizni sohada netvorking juda muhim, tanish bilish orqali asosiy mijozlar kelishi mumkin;
3. Instagramda video ko'rish o'rniga, siz ham ular kabi video kontent tayyorlashga kirishing. Soha bo'yicha O'zingizni yaxshi ko'rsata olsangiz, Instagram va Facebookdan ham oyiga kamida 1-2ta mijoz kelib turishi mumkin;
4. Mijozlar oqimiga erishmaguncha, bepul xizmatlar ko'rsatishni yo'lga qo'yishingiz mumkin.
P.S. Divanda yotishni bas qiling))
@suxrobblog
#mavzu#buyurtma#mijoz#savol_rublikasi