Что делать если нужно поставить какую-то 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
#Volunteers
🐾 A story from a yard in Chilanzar: when dialogue helps more than conflict
Volunteers from the NGO Ekolog, Iroda Yermolayeva and Yulianna Grushina, visited Chilanzar district, Nakko’shlyk Street, 19 following a request submitted via the Portal.
The complaint was about stray cats: neighbors claimed that the animals were entering the entrance and causing unpleasant odors, and allegedly even contributed to a child’s illness.
🔎 During the inspection of the entrance, no animal droppings were found; however, a strong smell came from the basement. The basement had household and construction waste that residents themselves had thrown there after cleaning and renovations.
During a follow-up visit, prevention inspectors, district administration, and the management company were involved in the dialogue. Together, they organized a general cleaning of the basement and opened ventilation.
🤝 The residents agreed to:
• block access to the basement for trash
• appoint responsible persons to maintain order
• install new doors with electronic keys to limit animals’ access.
🐱 For a humane solution, it was suggested to set up cat houses and a feeding area, and to start sterilization of stray animals.
Thanks to caring people, two female cats have already been sterilized, and three male cats are being prepared for castration.
🙏 Special thanks to the Mehr va Oqibat society and the veterinarians at Aybolit Veterinary Clinic for their help.
❗️ We need support again: two female cats are pregnant, and male cats need urgent castration.
💳 Card for donations:
9860 0301 0177 7602 — L.G.
📞 Phone: 90 121 97 99
📊 Reports: https://t.me/moykoshkindom
🐾 Animals want to live — let’s help them together. 🙏
☘️Read the latest environmental news on the @ekologuz page. Follow us and send your suggestions and wishes via @eklguz_bot
Instagram | Facebook | Twitter | Sayt | Youtube.
Антон, Артём и Габи из израильской компании Monday.com работают добровольцами в центре приёма беженцев на границе с Польшей. Антон и Артём - репатрианты из Украины, и у них есть родственники в Херсоне и Мариуполе
#volunteers
Юрий приехал в Израиль из Беларуси, а Дарья - из Украины. Дедушка и бабушка Дарьи живут в Днепре.
Они приехали помогать беженцам на границе в составе молодёжной группы «Ха-Шомер ха-Цаир».
#volunteers
Кто они, израильские волонтёры? В ближайшие дни расскажу о нескольких добровольцах, приехавших на границу помогать украинским беженцам.
Рада, социальный работник онкологического отделения больницы «Шиба», мама четырёх детей. В качестве волонтера от организации «Натан» приехала на границу с Украиной помогать в приеме беженцев. Родилась в Одессе.
#volunteers
📢Volontyorlar diqqatiga!
🌐 Joriy yilning 6–8-sentyabr kunlari 10-xalqaro “Diffusion Fundamentals” ilmiy konferensiyasi o‘tkaziladi.
🔥 Nufuzli xalqaro ilmiy konfernsiyada ishtirok etish, dunyo miqyosida yuqori o'rinlarda turuvchi top universitetlar olimlari bilan aloqa o‘rnatish va o‘z tajribasini yanada oshirish istagida bo‘lgan yoshlar volontyorlikka qabul qilinadi.
✅ Volontyorlar uchun talablar:
🔹istalgan universitet talabasi yoki abituriyent bo‘lish;
🔹o‘zbek va ingliz tillarida gaplasha olish;
🔹odamlar bilan tez va oson muloqotga kirisha olish.
👉Ro‘yxatdan o‘tish
🗓 Ro‘yxatdan o‘tish 25-avgustga qadar davom etadi.
❗️Ro‘yxatdan o‘tganlar suhbat asosida saralab olinadi.
🔁English
➖➖➖➖➖➖➖➖➖➖➖➖➖➖
#volunteers#Diffusion_fundamentals#conference
⬇️Biz ijtimoiy tarmoqlarda:
Veb-sayt | Telegram | Instagram | Facebook
Ассалому алайкум, ёш ва фаол Спорт Лидерлар! 🇺🇿✨
🚨 Президент Олимпиадаси учун волонтёрлар қабули бошланди!
Бу юртимиздаги энг нуфузли спорт тадбирларидан бири бўлиб, 10 та турли спорт йўналишларида ўтказилади.
📍Жойи: Олимпия шаҳарчаси
🗓Саналар: 22 ноябрдан — 4 декабргача
🎓Тайёрлов семинари: 17 ноябрь
‼️Волонтёр бўлиш учун талаблар:
Фаол ва лидерлик қобилиятига эга бўлиш
Масъулиятли бўлиш
Энг муҳими — спортни чин дилдан севиш!
Тил билиш талаб этилмайди — фақат ташаббускор, қизиқувчан ва барча кунларда қатнашишга тайёр бўлиш керак.‼️
🎁 Биздан сизга:
Олимпиада мерчи 🙋♀️
Спорт вазирлиги номидан сертификат 🥇
2 маҳал овқат 🍱
Ҳамма зоналарга кириш учун беджик 🖇️
Оқишингиз учун жавоб хати 🏫
Ва, албатта, кучли нетворкинг имконияти 🤝
⸻
Президентимиз иштирок этадиган бу тарихий тадбирда иштирок этиш — ҳар бир спорт лидери учун катта шараф!
🇺🇿
🇺🇿
Регистрация учун линк :https://forms.gle/td4yHTL3R5aCgUqc6
Регистрацияни кечиктирманг — жойлар чекланган ⚠️
Саволларингиз болса : @parvina_818
Спорт Лидерлари сафига қошилиш учун : @yslpuz га обуна бўлинг 😎🇺🇿
#ПрезидентОлимпиадаси#SportLeaders#Volunteers#YSLP
Freedom Flotilla Official Update: It's time for our governments to do their jobs and sanction Israel. Its illegal attack on 'Madleen' while sailing in international waters is a small extension of their war crimes in Gaza. Governments, institutions, media, and corporations must stop protecting Israel, now. They must stop prioritising profit over human lives, now. Protect our volunteers while protecting Palestinians in Gaza and wider Palestine.
#BreakIsraelsSiege#EndTheBlockade#Madleen#FreedomFlotilla#Volunteers#IOF#StandWithGaza#StandWithPalestine
Freedom Flotilla Official Update: It's time for our governments to do their jobs and sanction Israel. Its illegal attack on 'Madleen' while sailing in international waters is a small extension of their war crimes in Gaza. Governments, institutions, media, and corporations must stop protecting Israel, now. They must stop prioritising profit over human lives, now. Protect our volunteers while protecting Palestinians in Gaza and wider Palestine.
#BreakIsraelsSiege#EndTheBlockade#Madleen#FreedomFlotilla#Volunteers#IOF#StandWithGaza#StandWithPalestine
«Көктемгі жақсылық апталығы» аяқталды, бірақ игі істер жалғасуда! 😍
✅ Аймақтардағы қызықты акцияларды көру үшін карусельді айналдырыңыз! Түсініктемеде біздің волонтерлерді лайк басып қолдауды ұмытпаңыздар! ❤️🔥
_________________________
«Весенняя неделя добра» завершилась, но добрые дела - продолжаются! 😍
✅ Листайте карусель, чтобы посмотреть интересные акции в регионах! Не забудьте ставить лайк и поддержать наших волонтеров в комментариях! ❤️🔥
#ҰВЖменКөктемгіЖақсылықАпталығы
#ВесенняяНеделяДобрасНВС#ВНД2023#БудьЯрчесНВС#неделядобра#творидобро#будьдобрее#Ядобро#springweekofkindness#kindnessweek2023#kindnesschallege#volunteers#volunteeringisfun#volunteerlife
Жақсылық сіздің жұмыс күндеріңізге енеді!🌱
☀ Көптен күткен сәт те келіп жетті. Жақсылық жасауға дайынсыз ба? Біз дайынбыз! Бізге қосылыңыз! 🥳
Ұлттық волонтерлік желісі @kz_nvs «Көктемгі жақсылық апталығы» акциясын бастайды және барлық волонтерлік ұйымдар, бастамашыл топтарды мұны шексіз челленджге айналдыруға шақырады! 🤗😍
💥 Бір апта бойы сіз сенбіліктерде жануарларға және қоршаған табиғатқа көмектесуге, құрметті ардагерлер мен қиын өмірлік жағдайлардағы балаларға жақсылық сыйлауға, сондай-ақ төрт аяқты достарыңызды қуантуға мүмкіндік аласыз.
🎉 Егер сіз жақсы істі бастаған болсаңыз және онымен бөліскіңіз келсе, жарияланымды өз парақшаңызға салып, #ҰВЖменКөктемгіЖақсылықАпталығы хэштегін қоюды ұмытпаңыз! Барлық адамдарға жақсы үлгі көрсетейік!
🔥 Аймақтардағы іс-шаралар тізімін көру үшін карусельді айналдырыңыз 😍
Егер бұл челленджді барынша көп оқырман көрсін десеңіз: лайк басып, постпен бөлісіп, пікір қалдыруды ұмытпаңыз! Осы ауқымды іс-шараның бір бөлігі болу мүмкіндігін жіберіп алмаңыз! 🥳
_____
ДОБРО врывается в ваши будни!🌱
☀ Вот и настал тот самый долгожданный момент. Готовы творить добро? Мы да! Присоединяйтесь к нам! 🥳
Национальная волонтерская сеть @kz_nvs запускает акцию «Весенняя неделя добра» и призывает все волонтёрские организации, а также инициативные группы превратить это в бесконечный челлендж! 🤗😍
💥 Целую неделю у вас будет возможность помочь животным и окружающей природе на субботниках, подарить частичку добра уважаемым ветеранам и детям в сложных жизненных ситуациях, а также порадовать четвероногих друзей.
🎉 А если вы уже начали доброе дело и хотите этим поделиться, выкладывайте публикацию на свою страничку, ставьте хэштег #ВесенняяНеделяДобрасНВС и обязательно отмечайте нас!
🔥 Листай карусель, чтобы увидеть список мероприятий в регионах 😍
Приветствуются лайки, репосты и комментарии! Не упусти шанс стать частью этого масштабного мероприятия! 🥳
#ВесенняяНеделяДобрасНВС#весенняянеделядобра#ВНД2023#БудьЯрчесНВС#неделядобра#творидобро#будьдобрее#Ядобро#springweekofkindness#kindnessweek2023#kindnesschallege#volunteers#volunteeringisfun#volunteerlife