Что делать если нужно поставить какую-то 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
🌞ОНО ВОЗВРАЩАЕТСЯ ?!
Похоже, гигантское солнечное пятно AR3590, в прошлом месяце ставшее не только крупнейшим в текущем солнечном цикле, но и породившее мощнейшиевспышки класса X, вот-вот вернётся.
Последние 2 недели оно располагалось не обратной стороне Солнца, но Марсоход "Perseverance" исправно отслеживал ситуацию: с 1 по 9 мар. пятно, сохраняя свой размер, выглядело не распадающимся, но вполне здоровым.
Если так пойдёт и дальше, оно вновь, уже во второй раз появится из-за восточного лимба Солнца около 14 мар.
Фото: Солнце с гигантским пятном AR3590 на снимках марсохода "Perseverance", сделанных с 1 по 9 мар.
#sunspot#Perseverance
Марсоход NASA Perseverance впервые получил возможность сам точно определять своё местоположение на Марсе. Раньше он ориентировался по камерам и оборотам колёс, что давало ошибки до 30 метров. Такая неточность была опасна при движении по пересечённой местности. Новая система снижает погрешность до примерно 25 см.
#perseverance#nasa#навигация
📎Подробнее
Марсоход Perseverance сейчас изучает дельту древней реки в кратере Езеро на Марсе. У него есть георадар, который «просвечивает» грунт на глубину до 35 метров. Когда учёные собрали все данные радара воедино, оказалось, что под поверхностью скрывается ещё одна, более древняя и мощная речная дельта. На её фоне нынешние следы рек на поверхности выглядят просто тонким налётом истории.
#perseverance#жизньнамарсе#nasa
📎Подробнее
🔖 3DNews в Telegram | MAX | VK
🪐 Scientists have discovered that Mars’ Jezero Crater once held an ancient lake, where water persisted long enough to form river deltas and deposit clay minerals—materials that can preserve signs of life for billions of years. The Perseverance rover is now exploring this region, searching for tiny fossilized microbes that may have thrived in Mars' watery past. ✨
#Mars⚡#Perseverance⚡#astrobiology⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
От "Луны-16" до текущих дней: как ИИ стал ключевым членом космических экипажей 🚀🧠
Ровно 55 лет назад, 24 сентября 1970 года, случилось знаковое событие, которое наглядно доказало: роботы способны на самостоятельные космические миссии. Советская станция «Луна-16» впервые в истории в автоматическом режиме доставила на Землю образцы лунного грунта. Это был триумф инженерной мысли и прообраз будущего! 🌍➡️🌕
Тогда это была продвинутая автоматика, запрограммированная на строгий алгоритм действий. Но идея была гениальной: поручить сложнейшую задачу автомату, заложив фундамент для роботизированного освоения космоса.
Сегодня эту концепцию вывели на принципиально новый уровень благодаря искусственному интеллекту. Современные марсоходы, такие как Perseverance, — это уже не просто исполнители команд с Земли. Они — автономные ученые:
➡️Самостоятельно прокладывают путь, объезжая камни и опасные участки, экономя драгоценное время на связь с Землей.
➡️Анализируют породы с помощью встроенных спектрометров, выбирая самые интересные образцы для дальнейшего изучения.
➡️«Мыслят» на месте, принимая сотни микрорешений за один сол (марсианские сутки).
Эволюция налицо: от жесткой автоматики «Луны-16» к гибкому, адаптивному интеллекту современных роботов-исследователей. ИИ стал тем самым «следующим пилотом», который позволяет нам изучать миры на расстоянии десятков миллионов километров с невероятной эффективностью.
Что ждет нас дальше? ИИ будет критически важен для:
➡️Строительства автономных баз на Луне и Марсе.
➡️Поиска следов жизни в подледных океанах Европы или Энцелада.
➡️Управления сложными орбитальными станциями и звездолетами будущего.
Рекомендую вспомнить посты ранее:
➡️ИИ строит мост к Марсу: как роботы Optimus проложат путь человечеству?
➡️Человек слаб, ИИ — неуязвим.
Как это поможет на Марсе?
А как вы думаете, какая следующая крупная космическая задача будет полностью доверена искусственному интеллекту?
Или без человека никуда?
Делитесь мнениями в комментариях! 👇
#ИИвКосмосе#Космонавтика#Луна16#Perseverance#ИскусственныйИнтеллект#Нейросети#Будущее#Наука#Марс#Робототехника
https://t.me/semasci