Проблема с отображением вывода в PyScript

Вопросы и ответы

Я запускаю очень простой код pyscript, который обращается к python-файлу.

Следующий код является HTML-файлом:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Отладка PyScript</title>
    <!-- Использование последней стабильной версии PyScript -->
    <link rel="stylesheet" href="https://pyscript.net/releases/2024.9.1/core.css">
    <script type="module" src="https://pyscript.net/releases/2024.9.1/core.js"></script>
</head>
<body>
    <h1>Пример отладки PyScript</h1>

    <!-- Отображение терминала -->
    <py-terminal></py-terminal>

    <!-- Загрузка файла main.py с сервера -->
    <script src="https://vivliosyn.com/python/main_1.py" config ="https://vivliosyn.com/python/pyscript.json"></script>

</body>
</html>

”’

Python файл – main_1.py – содержит единственную строку

”’

print ("1")

”’

И HTML, и Python файл, а также файл pyscript.json хранятся в одной папке на сервере (vivliosyn.com/Python).

Тем не менее, я не получаю вывод из Python файла. Я могу получить вывод, если добавлю Python код прямо в HTML файл.
Однако я пытаюсь создать приложение, которое должно получить доступ к большему python файлу, который сохранен в виде .py файла.

В PyScript, когда вы хотите загрузить и выполнить внешний Python файл с сервера, вместо использования тега вы должны использовать специфические теги PyScript. Вы можете использовать тег для прямого выполнения Python кода в HTML, а также использовать другие теги для загрузки внешних Python файлов.

Чтобы загрузить внешний Python файл, вы можете использовать атрибут src внутри тега py-script

<py-script src="https://vivliosyn.com/python/main_1.py"></py-script>

Ответ

Проблема с тем, что ваш PyScript не отображает вывод, связана с неправильным использованием тега <script> для загрузки внешнего Python файла. В PyScript существует специальный тег <py-script>, который нужно использовать для выполнения кода Python, как встроенного в HTML, так и загруженного из внешних файлов.

Вот как правильно организовать ваш HTML-код для загрузки внешнего файла Python:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PyScript Debug</title>
    <!-- Используем последнюю стабильную версию PyScript -->
    <link rel="stylesheet" href="https://pyscript.net/releases/2024.9.1/core.css">
    <script type="module" src="https://pyscript.net/releases/2024.9.1/core.js"></script>
</head>
<body>
    <h1>Пример отладки PyScript</h1>

    <!-- Отображение терминала -->
    <py-terminal></py-terminal>

    <!-- Загрузка файла main_1.py через py-script -->
    <py-script src="https://vivliosyn.com/python/main_1.py"></py-script>

</body>
</html>

Теперь давайте рассмотрим, что вы должны сделать:

  1. Используйте тег <py-script> для загрузки и выполнения внешнего Python файла. Ваша строка для загрузки Python файла должна выглядеть так:

    <py-script src="https://vivliosyn.com/python/main_1.py"></py-script>
  2. Ваша Python программа main_1.py должна оставаться такой, как она есть:

    print("1")
  3. Убедитесь, что вы используете правильные URL для файлов, и что они доступны и корректно загружаются вашим браузером.

  4. Также убедитесь, что код запускается в подходящей среде и что у вас есть доступ к интернету, чтобы загрузить необходимые библиотеки.

После внесения изменений ваш HTML-код должен корректно загружать main_1.py и отображать выходное значение через <py-terminal>, если оно правильно настроено. Если вы хотите видеть вывод, который генерирует ваш Python код, то нужно убедиться, что сам терминал внедрен и правильно отобразит результат работы скрипта.

Если после этих изменений проблема все еще сохраняется, проверьте консоль разработчика (F12 в большинстве браузеров), чтобы увидеть, есть ли какие-либо ошибки, которые могут дать подсказку о том, что не так с загрузкой файла или выполнением кода.

Оцените материал
Добавить комментарий

Капча загружается...