У меня есть внешнее веб-приложение, созданное с помощью JavaScript, HTML и CSS. Я хотел бы включить вывод скрипта Python в свой интерфейс без использования сервера или полноценного серверного решения.
Сценарий Python представляет собой простую нейронную сеть, и я хочу отображать ее выходные данные во внешнем интерфейсе, например отображать результат в виде заголовка или строить график, сгенерированный сценарием.
Я уже пытался распечатать вывод на консоль из скрипта Python, но мне нужна помощь с передачей этого вывода во внешний интерфейс.
Можно ли добиться этого без сервера? Я открыт для предложений и начинаю с более простого решения, такого как построение графика, сгенерированного скриптом Python во внешнем интерфейсе.
Я ценю любые рекомендации или примеры кода о том, как это сделать. Спасибо! Я изучил Django, но мне кажется, что это кажется слишком сложным и более ориентированным на сервер для простой задачи, которая мне нужна.
! ОТВЕТ! Это позволяет мне принять только один ответ, но я бы сказал, что ответы Streamlit и Wasm приемлемы.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


похоже, вы пытаетесь создать веб-приложение без бэкэнда. javascript - ваша единственная надежда, если нет бэкэнда. невозможно интегрировать python с CSS, Javascript и HTML без серверной части.
Да, вывод скрипта Python можно включить в ваш внешний интерфейс без сервера или полноценного серверного решения. Один из способов добиться этого — использовать такой инструмент, как WebAssembly, для запуска сценария Python непосредственно в браузере. WebAssembly — это низкоуровневый формат байт-кода, который позволяет запускать код, написанный на различных языках, включая Python, непосредственно в браузере. Используя WebAssembly, вы можете скомпилировать свой скрипт Python в формат, который может выполняться в браузере без необходимости использования сервера.
Существует несколько способов компиляции кода Python в WebAssembly, например с помощью таких инструментов, как Pyodide или PyO3. После того как вы скомпилировали свой скрипт Python для WebAssembly, вы можете использовать JavaScript для загрузки и выполнения модуля WebAssembly в своем интерфейсе.
Вот пример того, как вы можете использовать WebAssembly для построения графика, сгенерированного скриптом Python во внешнем интерфейсе:
Во-первых, вам нужно скомпилировать ваш скрипт Python в WebAssembly с помощью такого инструмента, как Pyodide. Вы можете следовать документации Pyodide, чтобы узнать, как это сделать.
Когда у вас есть модуль WebAssembly, вы можете загрузить его в свой интерфейс с помощью JavaScript. Вот пример того, как вы можете загрузить модуль:
// Load the WebAssembly module
const module = await WebAssembly.instantiateStreaming(fetch('path/to/module.wasm'));
// Get a reference to the Python script function
const pyFunction = module.instance.exports.py_function;
// Call the Python script function with arguments
const result = pyFunction(arg1, arg2, ...);
// Create a scatter plot
const plotData = [{
x: [6, 2, 3, 1, 5],
y: result,
mode: 'markers',
type: 'scatter'
}];
// Set the layout of the plot
const plotLayout = {
title: 'Python Script Output'
};
// Render the plot
Plotly.newPlot('plot', plotData, plotLayout);
В этом коде я создал точечную диаграмму со значениями по оси X, фиксированными на [6, 2, 3, 1, 5], и значениями по оси Y, установленными на выходные данные скрипта Python. Вы должны настроить данные графика и макет в соответствии с вашими потребностями.
Обратите внимание, что этот подход требует поддержки современных браузеров для WebAssembly и может быть несовместим со всеми браузерами. Кроме того, WebAssembly — это низкоуровневый формат, требующий некоторых знаний двоичного кода и управления памятью. Если вам не нравятся эти концепции, вы можете рассмотреть возможность использования решения более высокого уровня, такого как сервер, или полной серверной среды, такой как Flask, Django или другие...
Если вы хотите включить вывод скрипта Python в свой интерфейс без использования сервера или полноценного серверного решения, у вас есть несколько доступных вариантов. Один из подходов заключается в использовании метода под названием «WebAssembly» (Wasm) для запуска сценария Python непосредственно в браузере. Emscripten: https://emscripten.org/ Пиодид: https://github.com/pyodide/pyodide
Спасибо Это то, что я искал
В том же духе существует также PyScript , который использует pyodide в качестве основы для фреймворка. Демо здесь. Поскольку он использует Pyodide, он ограничен возможностями и пакетами, которые поддерживает Pyodide, который все еще развивается быстрыми темпами.
Похоже, ту же проблему мы решили с помощью пакета Python streamlit. Streamlit — это пакет Python, который можно установить с помощью pip install streamlit. Вы запускаете свои скрипты из командной строки, используя streamlit run <python-scipt>.
Вы также можете развернуть Streamlit на сервере для обслуживания ваших скриптов Python, например. внутри сети компании.
Я не думаю, что вы сможете запустить модель Python во внешнем интерфейсе, но, возможно, посмотрите на Tensorflow.js, который может работать в браузере через Node.js. Возможно, вы сможете включить его в интерфейс, но я не уверен.