PyScript导入自定义模块报错:AttributeError: module 'example' has no attribute 'hello'
问题原因与解决方案
核心问题
你的example.py包含了PyScript(基于浏览器端Pyodide环境)不支持的服务器端代码,导致模块加载异常,进而找不到hello函数:
cgi模块是Python服务器端CGI专用模块,浏览器端Pyodide环境未内置该模块,导入时会触发错误,中断模块加载流程- 开头的shebang行(
#!/var/www/u0745362/data/env/bin/python)和顶层的print("Content-type: text/html\n")是CGI脚本的服务器端配置代码,PyScript环境不需要这些内容
而普通Python脚本在服务器端运行,具备cgi模块且支持CGI相关逻辑,因此可以正常执行。
修复步骤
1. 精简example.py代码
移除所有服务器端专属代码,仅保留函数定义:
def hello(): print("ok!!!")
2. 确认模块路径正确性
检查<py-config>中的from路径,确保相对于当前HTML页面的位置能正确找到example.py文件。路径无误的情况下,修改后重新访问页面即可正常调用example.hello()。
内容的提问来源于stack exchange,提问作者Damir Shaykxutd
相关产品推荐
相关产品推荐

