Рай надеется упростить установку и упаковку Python

    0
    4


    Недавний дебют инструмента Python под названием Rye породил надежды на то, что давние недостатки настройки и упаковки языка программирования могут быть решены.

    Rye, личный проект, разработанный Армином Ронахером, разработчиком с открытым исходным кодом и создателем веб-фреймворка Python Flask, решает две проблемы: загрузку (настройку) и упаковку.

    Начальная загрузка включает в себя установку и запуск среды Python; упаковка включает в себя распространение, установку и управление модульными программными библиотеками или пакетами в приложениях Python.

    Python имеет репутацию одного из самых доступных и простых в изучении языков программирования. Но он также довольно старый на данный момент, начиная с 1991 года, поэтому он накопил много технического долга. Все может быстро пойти не так, когда инструменты разработчика ведут себя непредвиденным образом.

    Язык управляется сообществом Python при поддержке Python Software Foundation. Следовательно, существует множество различных инструментов для начальной загрузки и упаковки, и в отсутствие единого правильного подхода к этим задачам разработчики часто делают выбор, который усложняет им жизнь и приводит к поломке кода.

    Запутанная природа упаковки Python была описана в комиксе XKCD 30 апреля 2018 года. Как год спустя Бретт Кэннон, член Руководящего совета Python и менеджер по разработке программного обеспечения в Microsoft, заметил: «Так что это явно задело за живое».

    Кэннон попытался переложить вину за ситуацию, описанную в комиксе, на его автора Рэндалла Манро, на стороннего менеджера пакетов macOS Homebrew и на Python. И хотя ругать разработчиков за то, что они стреляют себе в ногу из ружья, справедливо, на сообщество Python все же падает задача сократить доступность футганов.

    Перенесемся в 2021 год, и мы обнаруживаем, что Python Software Foundation нанимает менеджера проекта по упаковке. Обсуждение недостатков упаковки Python теперь включает в себя вопрос о том, может ли работать более целостный, направленный подход.

    Сообщество Python коснулось этих вопросов ранее в этом году и отметило, что отзывы пользователей, полученные в ходе опроса, указывают на то, что сообщество считает, что существует слишком много инструментов и слишком много сложностей. Это сложное сообщение для сообщества открытого исходного кода, чтобы его переварить — каждый может внести свой вклад, но, пожалуйста, не так много.

    Прадьюн Гедам, сопровождающий Python tool pip, подробно изучил эти проблемы в следующем посте в своем блоге в январе.

    «Классу пользователей нужен инструмент для создания пакетов, обеспечивающий единое взаимодействие (например, npm (NodeJS), cargo (Rust), gem (Ruby), pub (Dart), dotnet (C#/.NET) и т. д.) — единый инструмент. который предоставляет систему сборки, менеджер зависимостей, публикацию, выполнение задач/скриптов для конкретных проектов и т. д.», — написал он.

    «Сегодня каждая из этих частей представляет собой отдельный инструмент для Python и не имеет строгого сопоставления 1:1 с «лучшими практиками»/«безопасными» рабочими процессами. Это противоречит ожиданиям этих пользователей. Этот класс пользователей в целом хотят консолидации и единого инструмента».

    Многие пытались улучшить историю установки и упаковки Python на протяжении многих лет, и эти усилия продолжаются. Сам Кэннон создал проект под названием Python Launcher для Unix, чтобы упростить определение того, какой интерпретатор Python вы используете. Кроме того, есть инструменты управления пакетами и зависимостями, такие как Poetry и Pyflow. А разработчик Грегори Зорк (Gregory Szorc) решил смежную проблему с автономными переносимыми дистрибутивами Python и проектом PyOxidizer.

    Рожь Ронахера на самом деле использует автономный проект Szorc python-build. Это упрощает установку, позволяя избежать проблем, возникающих при наличии нескольких разных дистрибутивов Python, и избавляет от необходимости компилировать Python, предоставляя предварительно подготовленные двоичные файлы.

    Написано на Rust, конечно

    Rye построен на Rust, который в наши дни имеет определенную популярность, хотя в настоящее время он работает только на macOS и Linux. Несмотря на это, проект был хорошо принят в сообществе Python. Демонстрация Rye Ронахером на YouTube показывает, что Python может иметь опыт установки и зависимостей, который больше похож на инструмент Rust Cargo.

    «Рай хочет стать экспериментом по улучшению опыта разработчиков Python, чтобы приблизиться к тому, к чему уже привыкли разработчики Rust», — объяснил Роначер в электронном письме. Регистр. «Я получил много позитива и неожиданного интереса к этому проекту.

    «За последние три года я создавал различные итерации этого из личного интереса, но я был осторожен с публикацией чего-либо, опасаясь добавления еще одного инструмента в микс. Прямо сейчас я обращаюсь к другим людям в упаковочной экосистеме. чтобы увидеть, есть ли способ работать вместе над чем-то, и я пытаюсь получить лучшее публичное описание того, как я хочу, чтобы упаковка в экосистеме Python могла работать, чтобы привести людей в соответствие с видением».

    Ронахер прекрасно понимает, что усилиям по упрощению истории упаковки Python не обязательно помогает добавление еще одного в длинную линейку инструментов, и признает свое нежелание навязывать программное обеспечение, разработанное для личного использования, более широкому сообществу. В сообщении GitHub Issues он спрашивает, должна ли Rye существовать?

    Я хочу никогда больше не думать об упаковке Python и управлении проектами.

    «У меня действительно нет никакого желания вносить дополнительный вклад в распространение пакетов Python», — написал он. «Сегодня [Python Packaging Authority] на Github — это десятки конкурирующих, в основном независимых усилий. Кроме того, есть Конда. Теперь даже появляются компании, которые также создают слои вокруг Conda. Это довольно большой беспорядок.

    «Я просто хочу, чтобы она была решена, и я хочу никогда больше не думать об упаковке Python и управлении проектами».

    Некоторые из тех, кто откликается на размышления Ронахера, утверждают, что Rye или какое-то подобное уникальное решение должны существовать. Другие не согласны. И вот, в двух словах, у вас есть кошачье стадо, которое представляет собой управление Python.

    Саймон Уиллисон, разработчик с открытым исходным кодом и сопровождающий Datasette, недавно попробовал Rye и считает, что это может, по крайней мере, подтолкнуть сообщество к более согласованной схеме установки и упаковки.

    «Упаковка Python — это переполненное пространство, но у Райа есть несколько действительно интересных идей — особенно в отношении того, как можно установить сам Python таким образом, чтобы снизить вероятность конфликта с системными настройками по умолчанию», — сказал он. Регистр.

    «Лично я большой поклонник использования прототипов и запуска кода для иллюстрации новых идей, поэтому я приветствую Rye как проект, который может способствовать качественному обсуждению». ®

    Предыдущая статьяSamsung Galaxy S23 Ultra побеждает Xiaomi 13 Ультра и Oppo Find Х6 Pro
    Следующая статьяОбновлены значения Apple, подлежащие обмену, с комбинацией увеличения и уменьшения
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.