Что делать если нужно поставить какую-то 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
🔤ОРТИҚЧАКАЛЬЦИЙҲАВФИ
АҚШ ва Европа эндокринологлар уюшмалари 50 дан ошган одамларга кунига 700-1200 мг кальций қабул қилишни тавсия этган. Одатда бу тавсия остеопорозни (суяклар мўртлашиши) олдини олиш учун берилади.
Лекин 2021-йилда чоп этилган катта таҳлил шуни кўрсатдики, кальций қўшимчаларини қабул қилиш юрак томирларида муаммо келтириб чиқариши мумкин.
Айтиб ўтиш керакки, баъзи давлатларда 70%гача қария аёллар шифокор маслаҳатисиз кальций қабул қилади. Кальций сотувчи компаниялар кўпайгани сари, реклама ортидан бу кўрсаткич ошиб боряпти. Уни устига, баъзилар параллел равишта кальций сақловчи поливитамин/минераллар ҳам қабул қилади. Яъни доза ошиб кетиши мумкин.
☠️ 388 229 кишида ўтказилган тадқиқотда эркаклар кунига 1000 мг дан кўп кальций қабул қилиши 12 йиллик кузатувда юрак-қон томир касалликлари сабабли ўлим ҳавфини нисбатан ошириши мумкинлиги аниқланган.
17,5 йиллик кузатувда ҳам кунига 1000 мг дан кўп кальций қабул қилиш барча сабаблардан ўлим даражасини оширган. ☝️Аммо овқат таркибидаги кальций бундай ҳавфга эга эмаслиги аниқланган.
Корейс олимлар ҳам ўхшаш ҳулосага келишган ва инфаркт, инсульт, ўлим ҳавфи ошишини топишган.
Ортиқча кальций томирлар деворида йиғилиб уларни эгилувчанлигини пасайтиради. Яна тромбоцитларни фаоллаштириб, қонни қуюқлаштириши мумкин.
❗️МУҲИМ!
- келтирилган текширувлар узоқ муддатли (5 йил ва ундан кўп) кальций қабулини таҳлил қилган
- бу тадқиқотлар кальций мутлақ ҳавфли ёки қабул қилиниши керак эмас деган ҳулосага олиб келмаслиги керак, кальций саломатлигимиз учун албатта муҳим
ҲУЛОСА:
- кальций қўшимчалари айнан назоратсиз қабул қилинганда ҳавфли бўлиши мумкин
- қўшимчани қабул қилишдан аввал организмдаги кальций миқдори аниқланиши керак (қонда кальций ва ионлашган кальций) ва нормадан кам бўлса, уни ичса бўлади
- минерални қабул қилиш даврида ҳам маълум муддатларда текширув ўтказиб туриш керак
- кальций миқдорини оширишда биринчи навбатда озиқ-овқатга эътибор берган маққул
☝️Яқинлар билан улашинг ва каналга обуна бўлинг!
🩺Doctor Ziyod | #minerals
International Jeweler's Day is a holiday celebrated on January 31st and dedicated to jewelry professionals.
Tiger's Eye is a striking golden-brown gemstone known for its silky luster and captivating chatoyancy ("cat's eye" effect). South Africa is one of the world's leading sources of this beautiful stone, especially in the Northern Cape region.
Fun fact: ancient Roman soldiers wore Tiger's Eye for protection in battle, believing it granted courage and strength. Today, it's popular in jewelry and as a good luck charm, symbolizing confidence and grounding energy.
#jewelry#minerals
🎥Video 1, Video 2
🌍 The world’s largest reserves of phosphate rock, vital for fertilizer, are found in Morocco and Western Sahara. These deposits help feed billions, but supplies are concentrated in just this region. ✨
#resources⚡#minerals⚡#agriculture⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 Chile’s Atacama Desert contains the world’s largest natural supply of sodium nitrate, once the world’s main fertilizer before synthetics. This rare mineral helped boost crop yields globally. ✨
#resources⚡#minerals⚡#agriculture⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌎 The world’s largest crystal cave, Cueva de los Cristales in Mexico, holds giant selenite crystals that measure up to 12 meters long. These crystals formed over 500,000 years in intense heat and humidity more than 300 meters below the surface. ✨
#minerals⚡#geology⚡#caves
👉subscribe Interesting Planet
👉more Channels
🌎 Deep inside Lechuguilla Cave in New Mexico, explorers have found rare mineral formations called "subaqueous helictites." These twisted crystals form underwater from mineral-rich drips, creating shapes never seen elsewhere. The cave stretches over 248 kilometers, making it one of the longest surveyed caves in the world. ✨
#geology⚡#caves⚡#minerals
👉subscribe Interesting Planet
👉more Channels
🌎 Salt crystals can form “cave chandeliers” in arid underground lakes. These sparkling formations grow when salty water evaporates, leaving dazzling, fragile mineral structures hanging from cave ceilings. ✨
#geology⚡#caves⚡#minerals
👉subscribe Interesting Planet
🌍 The world's largest jade reserves are found in Myanmar, where huge boulders are mined for the precious stone. Some single jade stones weigh more than a small car before being cut. ✨
#resources⚡#minerals⚡#mining⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 China is now the world’s top producer of rare earth elements, mining over 60% of global supply. These minerals are essential for smartphones, wind turbines, and electric vehicles. ✨
#mining⚡#minerals⚡#resources⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 In South Africa, platinum mining happens more than 1,600 meters underground—deeper than most skyscrapers are tall. These mines supply most of the world’s platinum, vital for electronics and medicine. ✨
#mining⚡#resources⚡#minerals⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 Natural graphite, vital for batteries and electronics, is mostly mined in just three countries—China, Mozambique, and Madagascar—making global supplies of this critical resource surprisingly concentrated. ✨
#resources⚡#minerals⚡#mining⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels