无法在Pyscript中导入同目录简单模块,求解决办法
PyScript导入同目录模块失败的解决方案
针对你使用PyScript 2025.3.1版本导入同目录模块出现ModuleNotFoundError的问题,可按以下步骤解决:
1. 改用当前版本推荐的导入配置
当前PyScript版本已不再推荐使用<py-import>标签,而是通过<py-config>声明需要加载的本地文件,将其添加到Python的搜索路径中:
在index.html中添加<py-config>标签(建议放在<head>内或<py-script>之前):
<py-config> files = [ "./hazAlgo.py" ] </py-config>
之后删除原有的<py-import>标签,直接在<py-script>中导入模块即可。
2. 修正路径错误
你原代码中src="/hazAlgo.py"使用的是根目录绝对路径,若index.html和hazAlgo.py不在网站根目录(比如在子文件夹中),这个路径会指向错误位置。应改为同目录相对路径:
- 直接写
"hazAlgo.py"或"./hazAlgo.py"
3. 修复函数引用错误
你的<py-script>代码里,add_event_listener(btn, "click", hola)中的hola未指定所属模块,会触发NameError,需改为hazAlgo.hola:
add_event_listener(btn, "click", hazAlgo.hola)
修正后的完整index.html代码
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://pyscript.net/releases/2025.3.1/core.css" /> <script type="module" src="https://pyscript.net/releases/2025.3.1/core.js"></script> <!-- 添加配置声明 --> <py-config> files = [ "./hazAlgo.py" ] </py-config> </head> <body> <button id="button">¡Di Hola!</button> <div id="saludo"></div> <!-- Aquí va el código python --> <py-script> from js import document from pyodide.ffi.wrappers import add_event_listener import hazAlgo hazAlgo.hola() btn = document.getElementById("button") add_event_listener(btn, "click", hazAlgo.hola) </py-script> </body> </html>
额外注意事项
- 必须通过本地服务器访问文件(不能直接打开本地HTML文件),比如用Python命令
python -m http.server启动本地服务 - 检查
hazAlgo.py的文件名拼写是否正确(路径和文件名大小写敏感)
内容的提问来源于stack exchange,提问作者Alfonso Olvera Ventura
相关产品推荐
相关产品推荐

