无法从PyScript导入'document'对象的问题求助
问题
根据PyScript文档介绍,PyScript中存在名为document的对象,但执行以下代码时无法导入:
from pyscript import document
得到的错误信息:
ImportError: cannot import name 'document' from 'pyscript' (c:\Users\myusername\AppData\Local\Programs\Python\Python310\lib\site-packages\pyscript\__init__.py)
查看该路径下的__init__.py文件,内容为:
"""A CLI for PyScript!""" import json from pathlib import Path import platformdirs from rich.console import Console APPNAME = "pyscript" APPAUTHOR = "python" DEFAULT_CONFIG_FILENAME = "pyscript.json" # Default initial data for the command line. DEFAULT_CONFIG = { # Name of config file for PyScript projects. "project_config_filename": "manifest.json", } DATA_DIR = Path(platformdirs.user_data_dir(appname=APPNAME, appauthor=APPAUTHOR)) CONFIG_FILE = DATA_DIR / Path(DEFAULT_CONFIG_FILENAME) if not CONFIG_FILE.is_file(): DATA_DIR.mkdir(parents=True, exist_ok=True) with CONFIG_FILE.open("w") as config_file: json.dump(DEFAULT_CONFIG, config_file) try: from importlib import metadata except ImportError: # pragma: no cover import importlib_metadata as metadata # type: ignore try: import rich_click.typer as typer except ImportError: # pragma: no cover import typer # type: ignore try: __version__ = metadata.version("pyscript") except metadata.PackageNotFoundError: # pragma: no cover __version__ = "unknown" console = Console() app = typer.Typer(add_completion=False) with CONFIG_FILE.open() as config_file: config = json.load(config_file)
检查包根目录后,只看到cli、_generate等2-3个模块,不清楚该如何解决这个问题。
解决方法
- 你安装的
pyscript包是PyScript的CLI工具,而非浏览器端运行的PyScript环境。document是浏览器端PyScript提供的DOM操作对象,只能在浏览器环境中使用,无法通过本地Python环境导入。 - 正确使用
document的步骤:- 在HTML文件中通过CDN引入PyScript的样式和脚本:
<link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" /> <script defer src="https://pyscript.net/latest/pyscript.js"></script> - 在HTML的
<py-script>标签内直接使用document,无需额外导入:<py-script> # 示例:修改DOM元素内容 document.getElementById("demo").innerText = "Hello from PyScript!" </py-script> <div id="demo"></div>
- 在HTML文件中通过CDN引入PyScript的样式和脚本:
- 若误安装了CLI工具,可执行
pip uninstall pyscript卸载,避免混淆。浏览器端PyScript无需通过pip安装,直接在HTML中引入CDN即可使用。
内容的提问来源于stack exchange,提问作者Ryouzin_dev
相关产品推荐
相关产品推荐

