Что делать если нужно поставить какую-то 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
#comment
Kichik bir konkurs Registon yoki Cambridge o’quv markazidan 100% lik chegirma asosida sertifikat yutib olishni hohlaysizmi?
Tez orada talaba va abituriyentlar uchun zo’r yangilik bo’ladi!
@redfoxuz / #comment / 31 avgust 2021
Muqaddas Karimovaning RedFox akademiyasidagi grafik dazayn BOOTCAMP haqida fikri:
" RedFox akademiyasiga kelishdan avval Tomaris Tech loyihasi asosida tashkil etilgan 3 oylik bepul online kursida Grafik dizayn yoʻnalishda oʻqidim.U yerda faqatgina dastur bilan ishlashni oʻrgandim. So'ng RedFox akademiyasiga shogird olishayotganini internet orqali ko'rib qoldim va berilgan raqamlarga murojaat qildim va suhbatdan oʻtib RedFox akademiyasiga qabul qilindim. RedFoxda nafaqat dasturlar bilan ishlashni balki ustozlar bilan real proyektlar ustida ishlashni oʻrgandim.Grafik dizayn aslida qanday soha ekinligi haqida toʻliq maʼlumotga ega bo'ldim."
Suhbatdan o'ting:
📩@redfoxsuhbat
@redfoxuz / #comment
Islom Qurbonovning RedFox Akademiyasidagi SMM dizayn BOOTCAMP bo'yicha fikri:
"Oliygohda o'qishga qiziqishim bo'lmagan, shu sababdan RedFoxga o'qishga keldim. Bir oy oldin grafik dizayn sohasi bo'yicha tushuncham yo'q edi. Ustozlarimning bergan feedbacklaridan ko'p narsani o'rgandim. RedFox oddiygina akademiya emas RedFox ustozlar va shogirdlar oilasi."
📆 9 Iyun 2021
@redfoxuz / #comment
Usmonov Og'abekning RedFox Akademiyasidagi SMM dizayn BOOTCAMP bo'yicha fikri:
"RedFoxdagi real muhit, real proyektlar va raqobatni his qilib ishlash sizni yanada o'stiradi!"
📆 9 Iyun 2021
@redfoxuz / #comment
Yusupov Muhammadsodiqning RedFox Akademiyasidagi SMM dizayn BOOTCAMP bo'yicha fikri:
"O'zim ingliz tili yo'nalishida o'qiyman. Universtitet kutganimgidek emasligini keyin tushundim. Ikki oy oldin dizayn sohasi haqida tushunchaga ega emasdim. Bu yerdagi birinchi kunimdayoq Real proyektlar bilan ishlashni boshladik. Ustozlarning saboqlari bilan bir qancha loyihalarda qatnashdim. Bunda albatta ustozlarimizning hissasi katta. RedFox bu shunchaki dizayn studiosi emas, bu ustoz shogirdlar oilasi"
📆 9 Aprel 2021
@redfoxuz / #comment
😎 Sunnatbek Boboqulovning RedFox Akademiyasidagi SMM dizayn BOOTCAMP bo'yicha fikri:
"Dizayn sohasini o'rganish uchun ko'p joylarga borib ko'rgan edim, lekin dizayn erkinligini, muhitini faqat o'zingiz sevgan kasb bilan shug'ullanishni shu yerdan topdim!"
📆 6 Aprel 2021
#review#comment@akshali18
Wish Every day I see a new sunrise. My life, my vision, my delighters, my happiness, my experience is with me now and I am on no account going to misplace it. I have faced many teething troubles, many snake oils people but luckily, I am out of all the dilemmas in my life and that’s impressive. Now the sparkling day has come when I have become advanced to a greater extent, a pace more for advancing my future. I will show consideration for one and all, share cheerfulness with all and sundry and lend a hand to whole world. But without divinity it is impossible, and I am 101% sure you are with me god 😊. My life is mine each and every instant what I have suffered is adjusted by me to get out of that situation...
- the silent soul
🇧🇾#комментарий начальника Генерального штаба Вооруженных Сил — первого заместителя Министра обороны генерал-майора Павла Муравейкоо внезапной проверке готовности соединений и воинских частей Вооруженных Сил к выполнению задач по предназначению:
💬«Вооруженные Силы Республики Беларусь продолжают выполнять комплекс мероприятий по совершенствованию готовности сил и средств к выполнению задач по предназначению. В рамках данной деятельности сегодня с 9 часов утра начата внезапная проверка боевой готовности отдельных соединений воинских частей.
Проверка носит комплексный характер и предусматривает задействие разнородных сил. В частности, подразделения и воинские части сил специальных операций получили задачу выдвинуться во вновь назначенные районы, организовать их инженерное оборудование, создание системы заграждений. В последующем быть в готовности действовать по поиску, уничтожению и блокированию диверсионно-разведывательных групп условного противника, несению службы на блокпостах, а также оперативному реагированию и выходу на назначенные рубежи.
Подразделения зенитно-ракетных войск осуществляют выдвижение в новые позиционные районы и с их занятием завершат создание системы зенитно-ракетного прикрытия важных объектов на угрожаемых направлениях.
Одновременно с действиями сил специальных операций активно действуют подразделения ракетных войск и артиллерии, оснащенные комплексами «Полонез» и реактивными системами залпового огня БМ-21 «Град». Данные подразделения также под прикрытием сил специальных операций скрытно занимают назначенные районы и должны заступить на боевое дежурство по назначенным объектам.
В рамках всей проверки комплексно будет действовать авиация, которая выполнит задачи по доставке и высадке штурмовых групп на угрожаемые направления, поддержке сухопутной группировки при действиях на земле, а также несению и обеспечению истребительного авиационного прикрытия в важных объектах в рамках системы противовоздушной обороны.
Активно будут применяться беспилотные летательные аппараты, силы и средства радиоэлектронной борьбы, а также планируется отработать приемы действия сухопутных группировок в лесисто-болотистой местности.
Вся проверка спланирована и будет проводиться на территории Гомельской и Брестской областей. Мы надеемся, что по итогам данного мероприятия получим объективную оценку готовности наших воинских частей и подразделений выполнять задачи в условиях быстроменяющейся обстановки и обеспечивать безопасность нашей страны».
——————————
#comment by Chief of the General Staff of the Armed Forces — First Deputy Minister of Defence Major General Pavel Muraveiko:
«A snap combat readiness check of formations and military units of the Armed Forces began today.
The inspection will assess the ability of military units and subunits to occupy the designated areas in an orderly and timely manner, to equip the specified areas with engineering equipment, as well as to organise security and defence.
The troops will then have to carry out combat training tasks to search for and eliminate sabotage-reconnaissance groups of the mock enemy, conduct ambush actions, occupy the designated defence lines, as well as to be on duty at checkpoints».
Фото: Владимир Блинов, «Ваяр»
Сайт | Instagram | Х | Ok | Vk | Fb
@redfoxuz / #designer / #comment
😎 Dizayner Farruhbek Abdullayevdan RedFox uchun comment.
"RedFoxga borganimdan buyon har kunimni yozishga odatlanganman. SIzga rahmat notion bilan tanishtirganingiz uchun endi u bilan yashayotgan har kunim, har haftam, har oyim, har yilim va albatta butun hayotim rejalashtirilgan."
📅 13 sentabr 2020 yil