我已经创建了这个文件sample.py:
然后我用HTML创建了这个文件,在其中插入py-script:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>PyScript Tags</title>
<link rel="icon" type="image/png" href="favicon.png" />
<link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
<script defer src="https://pyscript.net/latest/pyscript.js"></script>
<py-env>
-paths:
-/sample.py
</py-env>
</head>
<body>
<br>
Alcuni elementi di esempio da utilizzare in Pyscript:
<strong>Stampa numeri random tramite il recupero del file random.py</strong>
<b>Il numero fortunato è <label id="random"></label></b>
<py-script>
from sample import generate_random_number
pyscript.write('random', generate_random_number())
</py-script>
</body>
</html>
但不要显示任何随机数。
通过Chrome的DevTools,我看到了这样的警报:

我使用VS代码并添加“Go Live”,并在编辑HTML代码时重新加载Chrome页面。我注意到HTML和sample.py在同一条路径上。有什么问题吗?
发布于 2022-09-08 03:31:52
问题在于py-env内部配置的语法。这是一个YAML配置。在"-“之后应该有一个空格字符。
<py-env>
- paths:
- /sample.py
</py-env>然后pyscript.write会抛出这个错误:“在写AttributeError:'NoneType‘对象中没有属性'innerHTML’”。pyscript是新的,实验性的,它的api会经常变化。
要使用.write函数,需要选择DOM元素,.write将设置为innerHTML。Pyscript有全局Element类,它允许您通过其ID获取一个HTML元素。因此,您可以创建一个div元素并更改它的innerHTML,甚至可以对它进行安慰:
<div id="random" >
</div>
<py-env>
- paths:
- /sample.py
</py-env>
<py-script >
from sample import generate_random_number
from js import console
# get element by id with global Element
random=Element("random")
random.write(f"random: {generate_random_number()} ")
console.log('random--------------------', generate_random_number())
</py-script>https://stackoverflow.com/questions/73488872
复制相似问题