Что делать если нужно поставить какую-то 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
Oʻzbekiston Respublikasi Prezidenti Shavkat Mirziyoyev Birlashgan Arab Amirliklari Hukumat ishlari boʻyicha vaziri Muhammad bin Abdulloh al-Gargaviy boshchiligidagi delegatsiyani qabul qildi.
—
Президент Республики Узбекистан Шавкат Мирзиёев принял делегацию Объединенных Арабских Эмиратов во главе с министром по делам Правительства Мухаммадом бин Абдуллой аль-Гергави.
#Mirziyoyev#qabul#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
Oʻzbekiston Respublikasi Prezidenti Shavkat Mirziyoyevning Birlashgan Arab Amirliklari Prezidenti Shayx Muhammad bin Zoid Ol Nahayon bilan telefon orqali muloqoti boʻlib oʻtdi.
—
Состоялся телефонный разговор Президента Республики Узбекистан Шавката Мирзиёева с Президентом Объединенных Арабских Эмиратов Шейхом Мухаммадом бин Заидом Аль Нахайяном.
#Mirziyoyev#muloqot#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
⚡️ “YANGI O‘ZBEKISTON” UNIVERSITETI VA XALIFA FAN VA TEXNOLOGIYALAR UNIVERSITETI VAKILLARI O‘RTASIDA UCHRASHUV O‘TKAZILDI
✅Maktabgacha va maktab ta’limi vaziriHilola Umarova hamda “Yangi O‘zbekiston” universiteti vakillaridan iborat delegatsiyaning Abu-Dabi shahridagi tashrifi davom etmoqda.
☑️ Bugun vazir Hilola Umarova, “Yangi O‘zbekiston” universiteti vakillari hamda Xalifa fan va texnologiyalar universiteti ijrochi vitse-prezidenti Doktor Ahmad al Shoibi o‘rtasida uchrashuv o‘tkazildi.
📌Uchrashuv davomida ikkala universitet vakillari taqdimotlar namoyish etib, quyidagi yo‘nalishlarda hamkorlik aloqalarini yo‘lga qo‘yishga kelishib olishdi:
🔹Hamkorlikda ilmiy tadqiqotlar olib borish;
🔹xalqaro ilmiy konferensiyalarni birgalikda tashkil etish;
🔹talabalar almashinuv dasturini joriy etish.
✔️ Uchrashuv yakunida Xalifa fan va texnologiyalar universiteti rektori boshchiligidagi delegatsiya “Yangi O‘zbekiston” universitetida joriy yilning 3-6-iyul kunlari tashkil etilishi rejalashtirilgan xalqaro konferensiyaga taklif etildi.
📍Ma’lumot uchun, Xalifa fan va texnologiyalar universiteti dunyoda 181-o‘rinda turadi (QS World University Ranking).
🔁English
➖➖➖➖➖➖➖➖➖➖➖➖➖➖
#xalqaro_hamkorlik#BAA
⬇️Biz ijtimoiy tarmoqlarda:
Veb-sayt | Telegram | Instagram | Facebook
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Дубай шаҳрига ташрифи давомида Бирлашган Араб Амирликлари Президенти Шайх Муҳаммад бин Зоид Ол Наҳаён билан учрашув ўтказди.
Учрашувда Амирликлар томонидан Вице-президент Шайх Мансур Ол Наҳаён, Бош вазир ўринбосари, ички ишлар вазириШайх Сайф Ол Наҳаён, энергетика ва инфратузилма вазири Суҳайл ал-Мазруий, саноат ва илғор технологиялар вазири, COP28 саммити президенти Султон Аҳмад ал-Жобир ҳам қатнашди.
—
В ходе пребывания в городе Дубае Президент Республики Узбекистан Шавкат Мирзиёев провел встречу с Президентом Объединенных Арабских Эмиратов Шейхом Мухаммадом бин Заидом Аль Нахайяном.
На встрече с эмиратской стороны также присутствовали Вице-президент Шейх Мансур Аль Нахайян, заместитель Премьер-министра, министр внутренних дел Шейх Сейф Аль Нахайян, министр энергетики и инфраструктуры Сухейль аль-Мазруи, министр промышленности и передовых технологий, президент саммита COP28 Султан Ахмед аль-Джабер.
#Mirziyoyev#uchrashuv#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Дубай шаҳрига ташрифнинг ишбилармонлик тадбирлари доирасида Бирлашган Араб Амирликлари етакчи компанияларининг ушбу мамлакат инвестиция вазири, “ADQ” холдинги бош ижрочи директори Муҳаммад Ҳасан Ал-Сувайдий бошчилигидаги делегациясини қабул қилди.
—
В рамках деловой программы пребывания в городе Дубае Президент Республики Узбекистан Шавкат Мирзиёев принял делегацию ведущих компаний Объединенных Арабских Эмиратов во главе с министром инвестиций, главным исполнительным директором холдинга «ADQ» Мухаммадом Хассаном Аль-Сувайди.
#Mirziyoyev#uchrashuv#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Бирлашган Араб Амирликлари Ҳукумат ишлари бўйича вазири Муҳаммад бин Абдуллоҳ ал-Гаргавий бошчилигидаги делегацияни қабул қилди.
—
Президент Республики Узбекистан Шавкат Мирзиёев принял делегацию Объединенных Арабских Эмиратов во главе с министром по делам Правительства Мухаммадом бин Абдуллой аль-Гергави.
#Mirziyoyev#qabul#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёевнинг Бирлашган Араб Амирликлари Вице-президенти шайх Мансур Ол Наҳаён билан телефон орқали мулоқоти бўлиб ўтди. Вице-президент Ўзбекистон раҳбарини сайловдаги ишончли ғалабаси билан дилдан қутлади, БАА Президенти шайх Муҳаммад Ол Наҳаённинг табриги ва энг эзгу тилакларини ҳам етказди.
—
Состоялся телефонный разговор Президента Республики Узбекистан Шавката Мирзиёева с Вице-президентом Объединенных Арабских Эмиратов шейхом Мансуром Аль-Нахаяном. Вице-президент сердечно поздравил главу Узбекистана с убедительной победой на прошедших выборах, а также передал поздравления и наилучшие пожелания
от имени Президента ОАЭ шейха Мухаммада Аль-Нахаяна.
#Mirziyoyev#muloqot#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Бирлашган Араб Амирликлари Президенти Шайх Муҳаммад бин Зоид Ол Наҳаён билан телефон орқали мулоқот қилди.
—
Президент Республики Узбекистан Шавкат Мирзиёев провел телефонный разговор с Президентом Объединенных Арабских Эмиратов Шейхом Мухаммадом бин Заидом Аль Нахаяном.
#Mirziyoyev#muloqot#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Ўзбекистон Республикаси Президенти Шавкат Мирзиёевнинг Бирлашган Араб Амирликлари Ҳукумат ишлари бўйича вазири Муҳаммад бин Абдуллоҳ ал-Гаргавий бошчилигидаги делегация билан учрашувида юқори технологиялар, сунъий интеллект, рақамлаштириш, шаҳар инфратузилмасини модернизация қилиш, ҳудудларнинг савдо-инвестициявий салоҳиятини рўёбга чиқариш борасидаги аниқ лойиҳа ва дастурларни амалга ошириш истиқболлари ва бошқа масалалар кўриб чиқилди.
—
Перспективы реализации конкретных проектов и программ в сфере высоких технологий, искусственного интеллекта, цифровизации, модернизации городской инфраструктуры,
раскрытия торгово-инвестиционного потенциала регионов и другие вопросы рассмотрены в ходе встречи Президента Республики Узбекистан Шавката Мирзиёева с делегацией Объединенных Арабских Эмиратов во главе с министром по делам Правительства Мухаммадом бин Абдуллой аль-Гергави.
#Mirziyoyev#qabul#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Oʻzbekiston Respublikasi Prezidenti Shavkat Mirziyoyev Birlashgan Arab Amirliklari Hukumat ishlari boʻyicha vaziri Muhammad bin Abdulloh al-Gargaviy boshchiligidagi delegatsiyani qabul qildi.
—
Президент Республики Узбекистан Шавкат Мирзиёев принял делегацию Объединенных Арабских Эмиратов во главе с министром по делам Правительства Мухаммадом бин Абдуллой аль-Гергави.
#Mirziyoyev#qabul#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Бирлашган Араб Амирликлари энергетика ва инфратузилма вазири Суҳайл ал-Мазруий бошчилигидаги делегацияни қабул қилди.
—
Президент Республики Узбекистан Шавкат Мирзиёев принял делегацию Объединенных Арабских Эмиратов во главе с министром энергетики и инфраструктуры Сухейлем аль-Мазруи.
#Mirziyoyev#uchrashuv#BAA#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
https://t.me/deputat_n_yusupov
http://stackoverflow.com/questions/29269370/how-to-properly-create-and-run-concurrent-tasks-using-pythons-asyncio-module
In the case of trying to concurrently run two looping Tasks, I've noticed that unless the Task has an internal await expression, it will get stuck in the while loop, effectively blocking other tasks from running (much like a normal while loop). However, as soon the Tasks have to wait--even for just a fraction of a second--they seem to run concurrently without an issue.
Thus, the await statements seem to provide the event loop with a foothold for switching back and forth between the tasks, giving the effect of #concurrency.
Example output with internal await:
running async test
...#boo 0
...#baa 0
...boo 1
...baa 1
...boo 2
...baa 2