Что делать если нужно поставить какую-то 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
Пока в нескольких регионах РФ проходят испытания гибридные трактора Zoomlion DV3354, на Ленинградской земле испытывали трактор PG2004 с Немецкой полуавтоматической трансмиссией PowerShift (ZF).
Работа с плугом Kverneland PN100-5 (5 корпусов)на тяжелых почвах.
Глубина обработки 30 см
Скорость 8-9 км/ч
На глубине 20-25 см
Скорость 10-11 км/ч
Работа с тяжелым дискатором (5800 кг)
Диаметр дисков 660 мм.
Глубина обработки 12 см
Скорость 10-12 км/ч
С поставленными задачами трактор Zoomlion PG2004 справился, отмечено что потребление топлива значительно меньше в сравнении с механическими трансмиссиями, выше производительность и комфорт механизатора!
#Агромаг#испытания#демо#Zoomlion@Zoomlion_AG_Rus#PG2004#ZF#PowerShift#лучшийтрактор#Kverneland
Забудьте про ручное переключение!
С трансмиссией от мирового производителя ZF установленной на PG2004 вы получите плавность управления и точность, которые делают каждый проход по полю эффективным. Мягкая смена скоростей не только экономит ваше время, но и снижает утомляемость, позволяя работать с максимальной отдачей.
Трактор Zoomlion PG2004 — это трактор с мощностью 200 л.с. и оснащенный передовыми технологиями, которые минимизируют расход топлива, что снижает эксплуатационные расходы.
Zoomlion PG2004 — европеец в Китайской шкуре!
🌟🌟🌟Если у Вас есть потребность в таком тракторе, мы готовы предоставить его для Вас на демо испытания!🌟🌟🌟
За дополнительной информацией обращайтесь в отдел продаж +79006331826
#Агромаг#лучшийтрактор#демо#испытания#технологии#PG2004#ZoomlionPG2004#китайскийтрактор#ZF#европеец
https://x.com/zachqfish/status/2053461293190062283?s=52
🙏 Why We Cannot See Creator
Sometimes people ask, “Why can’t we see Creator?”
It’s a beautiful question, and one that has echoed through humanity since the beginning of time.
Maybe the answer is simpler than we think.
A child in the womb cannot see its mother.
It cannot comprehend the world beyond the walls that surround it. It does not know who is feeding it, protecting it, or sustaining every breath and heartbeat. And yet, the mother is there the entire time... loving, nourishing, and holding that child in perfect care.
The child may not understand the mother, but the mother understands the child completely.
In many ways, we are no different.
We live inside a vast and mysterious universe, surrounded by intelligence, beauty, and order far beyond what our minds can fully grasp. We may not be able to see Creator with our physical eyes, but we can witness the fingerprints of Creator everywhere... in the rhythm of our hearts, the precision of nature, the power of love, and the quiet inner knowing that reminds us we are never alone.
Perhaps this life is a sacred womb.
A place where our souls are growing, learning, and preparing for a greater birth into a reality we cannot yet imagine.
And just like the child in the womb, we may not fully understand what holds us.
But we are held.
We are guided.
We are loved beyond measure.
One day, when the veil lifts and our awareness expands, we may realize that what we were searching for was never separate from us.
Creator was not hidden.
Creator was carrying us all along.
ZF 🔥
#Creator#Faith#SpiritualAwakening#TheWayOfBeing#DivinePresence#Awakening#Consciousness#NewEarth#TrustTheJourney#ZF🔥