Как и многие, я долго мирился с неудобствами, просто потому что не знал: можно намного лучше. Так было и у меня — жил с Mamba для рабочих проектов по анализу данных, пока не попробовал Pixi. С ним куча мелких и больших проблем просто исчезла. Возможно, Pixi пригодится и вам — даже если вы не data scientist и не работаете с Python каждый день.
Что такое Pixi?
Менеджер пакетов, который понравится каждому разработчику
Pixi — это менеджер пакетов, который устанавливается поверх основного системного менеджера — вроде apt на Ubuntu или WinGet на Windows. Его создавали специально для удобства разработчика.
Логичный вопрос: зачем ещё один менеджер пакетов, если в ОС уже свой есть? Ответ прост — стандартные репозитории часто отстают, а разработчикам нужны свежие версии библиотек, интерпретаторов, отладчиков или компиляторов.
Раньше всё это приходилось скачивать самому — вручную, иногда даже собирать из исходников. Каждое обновление превращалось в отдельную эпопею.
Команда Prefix — разработчики Pixi — даже записали видео, где наглядно показывают, как легко начать работать с этим инструментом.
Главная "фишка" Pixi — проектный подход. Для каждого проекта вы создаёте своё собственное рабочее окружение, а когда работа закончена — просто удаляете его. Причём Pixi автоматически фиксирует точные версии всех пакетов в специальном lock-файле. Благодаря этому вы без проблем воспроизведёте окружение на другом компьютере или просто скинете коллегам.
Почему я бросил Mamba
Обновления долго, возни много
Долго сидел на Mamba — создавал среды для статистики, анализа данных, машинного обучения. Сначала всё устраивало, но со временем раздражающих минусов становилось всё больше.
Самое неприятное — обновление окружения превращается в вечность. Тогда как обычные менеджеры под Linux быстро просчитывают зависимости и скачивают пакеты, с Mamba процесс мог зависнуть на десятки минут. Как по мне — это пройденный этап.
Второй минус — постоянная необходимость вручную "активировать" среду перед работой. Собрался что-то быстро проверить в IPython или Jupyter — а терминал тут же выкидывает ошибку, потому что забыл активировать среду. Мелочь, а раздражает.
Засел изучать альтернативы — и вдруг в сообществе NumPy увидел, что Pixi советуют новичкам как максимально простой способ установок. Решил попробовать — хуже не будет.
Установить Pixi проще простого:
Всё — Pixi готов создавать любые dev-окружения по щелчку пальцев.
Как создать новое окружение
Каждому проекту — своя папка и среда
С Pixi я легко создаю новое рабочее окружение. Например, под научные Python-библиотеки: NumPy, SciPy, SymPy, IPython, Jupyter и matplotlib — всё отдельно.
Эта команда тут же создаёт папку (если её не было), скрытый каталог .pixi (на Linux), а также файлы pixi.toml и pixi.lock.
В pixi.toml — список всех установленных пакетов и доступных программ, а lock-файл хранит точные версии каждого компонента. Это значит, что весь проект легко перенести и развернуть где угодно.
После создания среды добавить новые пакеты — проще некуда:
Молниеносно обновляю окружения
Pixi обновляет за секунды, а не за минуты!
С Pixi обновления занимают буквально пару секунд — раньше это могло тянуться несколько минут! Такой прирост скорости, видимо, потому, что клиент написан на быстром и надёжном языке Rust.
Система обновлений работает очень похоже на APT или другие популярные пакетные менеджеры.
Чтобы узнать, что можно обновить, или установить свежие версии — в папке проекта просто введите команду:
Для установки обновлений — одна строка. Всё просто!
Любое количество проектов — и никакой путаницы
Переключаюсь между средами в один клик
Благодаря тому, что каждая среда — это отдельная папка, можно держать одновременно сколько угодно окружений, хоть внутри одного большого репозитория!
Помимо среды для статистики, я спокойно поставил SageMath — он тоже есть в репозиториях. Кстати, Pixi использует те же источники, что и Mamba, так что вы полностью контролируете, что устанавливается.
Чтобы зайти в shell нужной среды Pixi, просто выполните:
Закончили работу — просто набирайте «exit» или жмите Ctrl + D, чтобы выйти в обычный терминал.
А ещё можно запускать отдельные команды прямо из среды через «pixi run». Например, для SageMath:
Можно создать глобальное окружение для data science — всё в одном месте!
Все любимые инструменты — всегда под рукой
В своём окружении для статистики я могу запускать IPython или Jupyter так же, как и Sage.
Было бы удобно иметь все эти инструменты всегда под рукой, не переключаясь между средами. Обычно ради этого приходится ставить нужные пакеты через системный менеджер. Pixi даёт простой способ создать глобальное окружение — суперполезно для аналитиков данных.
Подпишитесь: лучшие лайфхаки по Pixi и другим топовым инструментам для разработчиков
Просто создаю специальную среду со всем необходимым: NumPy, SciPy, SymPy, Seaborn, statsmodels — любимый набор библиотек в одну команду.
Вот так просто это настраивается:
Всё почти как при работе с системным пакетным менеджером. Флаги "--expose" делают ваши скрипты доступными для всей системы, даже если они установлены в изолированной среде Pixi.
Например, чтобы добавить в набор удобный калькулятор isympy для SymPy — просто прописал его вручную в секцию "exposed" в pixi.toml.
В секцию "exposed" просто добавил:
Теперь у меня — по-настоящему удобный калькулятор для любых вычислений буквально в пару кликов.
Наконец-то простой способ управлять рабочими окружениями!
Pixi избавил меня от многих постоянных проблем, с которыми я мучился из-за Mamba. Жаль только, что не узнал об этой штуке раньше!
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru