PyScript переносит Python в браузер проще, чем когда-либо.

автор vadim


Anaconda, создатели дистрибутива Python для научных вычислений, анонсировали на PyCon US 2022 проект PyScript — встроенный в браузер способ запуска сценариев Python на страницах HTML так же легко, как и сам JavaScript.

Традиционно Python мог взаимодействовать с JavaScript или веб-страницей только в качестве сервера приложений, возвращающего HTML и JavaScript. PyScript не имеет серверного компонента; все работает прямо в браузере.

Используя PyScript, полезные компоненты из мира Python и JavaScript можно развертывать параллельно. В одном примере, демонстрационном примере данных такси Нью-Йорка, PyScript использует Pandas для анализа данных, а затем генерирует интерактивное трехмерное представление данных с помощью JavaScript WebGL.

рукописный текст ИДГ

Демонстрация PyScript (рендеринг работы такси в Нью-Йорке в режиме реального времени), в которой используются библиотеки Pandas для обработки чисел и библиотеки визуализации JavaScript для обеспечения интерактивного представления данных.

PyScript использует полный порт среды выполнения CPython на WebAssembly для запуска встроенного кода Python. Вы помещаете свой код Python внутрь <py-script> теги, и вы можете поместить его вывод в выбранный <div>. А <py-repl> тег вставляет блок REPL, который позволяет вводить и выполнять код, а также <py-env> функции тегов, такие как файл require.txt в репозитории, для перечисления необходимых пакетов.

Среда выполнения PyScript также поддерживает многие распространенные пакеты Python, такие как научные библиотеки, входящие в состав Anaconda — NumPy, Pandas, Scikit-learn и многие другие. Демонстрации в репозитории PyScript демонстрируют различные способы сделать это.

Хотя PyScript все еще находится на ранних стадиях разработки, он уже обеспечивает возможность взаимодействия Python и JavaScript — например, Python может ссылаться на DOM, а объекты JavaScript — обращаться к объектам Python. PyScript также позволяет использовать эквиваленты в браузере для многих действий, необходимых в дистрибутиве Python, например перечисление требований к пакету для сценария.

Более ранним проектам в этом духе, таким как Pyodide (который PyScript использует в качестве основы для своей работы), не хватало плавной интеграции PyScript между JavaScript и Python и его широкого доступа к пакетам. PyScript имеет доступ ко всем пакетам, доступным через PyPI, при этом широко используемые Pandas и NumPy уже доступны.

Однако сторонние пакеты работают лучше всего, если они написаны на чистом Python. В PyScript пока нет механизма автоматического создания двоичных файлов платформы для пакетов, хотя теоретически это возможно. Еще одним препятствием является время и пропускная способность, необходимые для загрузки и настройки всех компонентов, необходимых для конкретной веб-страницы с поддержкой PyScript. Основная среда выполнения Python занимает около 3,4 МБ WebAssembly, хотя она кэшируется после первой загрузки.

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

Related Posts

Оставить комментарий