PyScript导入本地模块遇404错误,求解决方案
在PyScript中导入本地模块失败的解决方法
问题场景
我尝试在PyScript中导入本地模块BookOperations.py里的get_books_count函数,但浏览器持续报错:
PyScript: Loading from file ../app/db_operations/BookOperations.py failed with error 404 (File not Found). Are your filename and path are correct?
我的HTML代码如下:
<html> <head> <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" /> <script defer src="https://pyscript.net/alpha/pyscript.js"></script> <title>Title</title> <py-env> - paths: - ../app/db_operations/BookOperations.py </py-env> </head> <body> <py-script> from BookOperations import get_books_count </py-script> </body> </html>
我已尝试以下方法但均未解决问题:
- 移除路径首段的斜杠,写成
..app/db_operations/BookOperations.py - 路径开头使用单个点,写成
./app/db_operations/BookOperations.py - 路径开头不使用点
- 将路径写成
app.db_operations.BookOperations.py(用.代替/) - 将
<py-env>标签移至<body>标签内
解决建议
1. 确认路径基于服务器根目录而非本地文件系统
PyScript的路径是相对于你运行HTML文件的服务器根目录,不是本地文件系统的相对路径。比如你的项目结构是:
项目根目录/ ├── app/ │ └── db_operations/ │ └── BookOperations.py └── html/ └── 当前HTML文件.html
那你需要把<py-env>里的路径调整为/app/db_operations/BookOperations.py;如果HTML文件就在项目根目录下,直接写app/db_operations/BookOperations.py即可。
2. 必须通过本地服务器运行项目
PyScript无法直接读取本地文件系统的文件,必须用本地服务器启动项目:
- 用Python启动:在项目根目录打开终端,运行
python -m http.server 8000,然后访问http://localhost:8000/你的HTML文件路径 - 用VSCode的Live Server插件直接右键HTML文件启动
3. 检查文件名和路径的大小写
浏览器是严格区分大小写的,比如bookoperations.py和BookOperations.py会被视为不同文件,确保代码里的路径和实际文件名完全匹配。
4. 先做最小化测试定位问题
把BookOperations.py复制到HTML文件所在的目录,修改<py-env>为:
<py-env> - paths: - ./BookOperations.py </py-env>
如果能成功导入,说明之前的路径层级判断错误,再逐步调整路径到正确位置。
内容的提问来源于stack exchange,提问作者Paul Buciuman
相关产品推荐
相关产品推荐

