Что делать если нужно поставить какую-то 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
News: ‘We watched them die before our eyes’: #Sudan health workers helpless amid medical shortages
“We had to watch two of the babies die before our eyes,” said Dr. Hasan Babikir, describing the death of premature triplets he was unable to treat due to a lack of intensive care beds.
As tens of thousands of people, many in urgent need of healthcare, flee the violence engulfing South #Kordofan, health workers at the El-Obeid Maternity Hospital in neighbouring North Kordofan describe dire conditions.
“There’s a severe shortage of surgical and normal delivery equipment, as well as essentials such as antibiotics, surgical sutures and gloves,” Dr. Babikir told the UN’s sexual and reproductive health agency, #UNFPA.
“This forces us to buy them from the market at very high prices.”
The maternity hospital is the only referral hospital in western Sudan and currently serves over 230,000 displaced people, most of them women and girls facing sexual violence, hunger and
https://news.un.org/en/story/2026/04/1167230
‼𝐀𝐬𝐭𝐚̆𝐳𝐢, 𝐥𝐮𝐧𝐢, 𝟐𝟖 𝐚𝐮𝐠𝐮𝐬𝐭 𝟐𝟎𝟐𝟑, 𝐢̂𝐧𝐜𝐞𝐩𝐞 𝐑𝐞𝐜𝐞𝐧𝐬𝐚̆𝐦𝗮̂𝐧𝐭𝐮𝐥 𝐝𝐞 𝐩𝐫𝐨𝐛𝐚̆ 𝐚𝐥 𝐏𝐨𝐩𝐮𝐥𝐚𝐭̦𝐢𝐞𝐢 𝘀̦𝐢 𝐋𝐨𝐜𝐮𝐢𝐧𝐭̦𝐞𝐥𝐨𝐫!
✅Recensământul de probă se va desfășura până la data de 𝟏𝟎 𝐨𝐜𝐭𝐨𝐦𝐛𝐫𝐢𝐞 𝟐𝟎𝟐𝟑 în sectoare alese din municipiile 𝐂𝐡𝐢𝘀̦𝐢𝐧𝐚̆𝐮 (inclusiv s. Colonița), 𝐁𝐚̆𝐥𝐭̦𝐢, 𝐒𝐨𝐫𝐨𝐜𝐚 și 𝐂𝐨𝐦𝐫𝐚𝐭, orașul 𝐓𝐚𝐫𝐚𝐜𝐥𝐢𝐚 și din satele 𝐆𝐥𝐢𝐧𝐣𝐞𝐧𝐢 din raionul Fălești, 𝐕𝐚𝐫𝐧𝐢𝐭̦𝐚 din raionul Anenii Noi, 𝐁𝐮𝐭𝐮𝐜𝐞𝐧𝐢 din raionul Orhei, 𝐂𝐫𝐢𝐡𝐚𝐧𝐚 𝐕𝐞𝐜𝐡𝐞 din raionul Cahul și 𝐂𝐨𝐩𝐚𝐧𝐜𝐚 din raionul Căușeni.
👉În această perioadă recenzorul de sector va colecta date despre persoane și gospodărie și în acest context încurajăm locuitorii selectati pentru recenzare să primească cu încredere recenzorii în casele lor și să raspundă corect și complet la toate întrebările din chestionar!
#European Union in the Republic of Moldova | #UNFPA Moldova
#RPL2024, #rplPROBA2023, #RecensamantulPopulatieiSiLocuintelor2024
🫰“Zo‘ravonlikka qarshi 16 kunlik faol harakat” kampaniyasiga tayyorgarlik boshlandi
25-noyabrdan boshlab butun dunyoda “Zo‘ravonlikka qarshi 16 kunlik faol harakat” global kampaniyasi start oladi.
↗️ Ushbu tashabbus Xalqaro ayollarga nisbatan zo‘ravonlikka qarshi kurash kuni munosabati bilan o‘tkazilib, jamiyatda zo‘ravonlikni bartaraf etish, gender tenglik va o‘zaro hurmatni mustahkamlashga qaratilgan.
✅ Bugun ushbu tadbirga puxta tayyorgarlik ko‘rish maqsadida Ijtimoiy himoya milliy agentligi Jamoatchilik bilan aloqalar bo‘limi boshlig‘i va BMT Aholishunoslik jamg‘armasi (UNFPA) vakillari o‘rtasida uchrashuv bo‘lib o‘tdi.
❗️Uchrashuvda kampaniya doirasidagi rejalar, hamkorlik yo‘nalishlari va aholining xabardorligini oshirish masalalari muhokama qilindi.
🫰 “Zo‘ravonliksiz jamiyat — har bir insonning haqqi!”
#16KunlikFaolHarakat#ZoravonlikkaQarshi#UNFPA#IjtimoiyHimoya
Telegram kanal
Xalqaro Volontyorlar Kuni munosabati bilan TIUEda UNFPA bilan birga bo‘ling!
🗓 5 dekabr, soat 14:15 da sizni UNFPA (Birlashgan Millatlar Tashkiloti aholisi jamg‘armasi) faoliyati va volontyorlar imkoniyatlari haqida bilib olishingiz mumkin bo‘lgan qiziqarli tadbirimizga taklif etamiz.
📍 Manzil: Tashkent International University of Education
🎯 O‘rinlar soni cheklangan
Tadbirda siz quyidagilarni bilib olasiz:
✔️ UNFPA volontyorlariga qanday qo‘shilish va muhim global tashabbuslarga o‘z hissangizni qo‘shish;
✔️ Volontyorlik qanday qilib liderlik fazilatlarini rivojlantirishga, muloqot ko‘nikmalarini yaxshilashga va ufqlarni kengaytirishga yordam beradi;
✔️ Xalqaro loyihalarda ishtirok etish qanday imkoniyatlarni ochadi.
⚡️ Millionlab odamlarning hayotini o‘zgartirayotgan xalqaro tashkilot faoliyati haqida ko‘proq bilib olish va ko‘nikmalarini rivojlantirish imkoniyatini qo‘ldan boy bermang!
Oldindan yozilish majburiy!
#UNFPA#Volontyorlik#XalqaroVolontyorlarKuni#Liderlik#TIUE
_____
Присоединяйтесь к Международному дню волонтеров вместе с UNFPA в TIUE!
🗓 5 декабря в 14:15 мы приглашаем вас на интересное мероприятие, где вы узнаете о деятельности UNFPA (Фонд ООН в области народонаселения) и возможностях волонтерства.
📍 Место: Tashkent International University of Education
🎯 Количество мест ограничено
На мероприятии вы узнаете:
✔️ Как стать волонтером UNFPA и внести свой вклад в важные глобальные инициативы;
✔️ Как волонтерство помогает развивать лидерские качества, улучшать коммуникационные навыки и расширять горизонты;
✔️ Какие возможности открывает участие в международных проектах.
⚡️ Не упустите шанс развить свои навыки и узнать больше о работе международной организации, меняющей жизни миллионов людей!
Запись обязательна!
#UNFPA#Волонтёрство#МеждународныйДеньВолонтеров#Лидерство#TIUE#IVD2024
@unverurasia