【发布时间】:2015-05-19 09:39:00
【问题描述】:
根据设计,Python 3 cannot run 是一个包含相对导入作为脚本的模块。尝试这样做会产生以下错误:
$ python mypackage/run.py
[...traceback...]
SystemError: Parent module '' not loaded, cannot perform relative import
解决方案是使用python -m mypackage.run 而不是更熟悉的python mypackage/run.py 调用模块。
在 Flask 中,后者是通常运行开发服务器的方式。但是,Flask 开发服务器会立即生成一个重新加载代码的子进程(并随后在磁盘上的文件发生更改时重新加载代码)。
结果是这样的:
$ python -m mypackage.run
* Running on http://127.0.0.1:5000/
* Restarting with reloader
[...traceback...]
SystemError: Parent module '' not loaded, cannot perform relative import
所以现在服务器正常启动了,但是子进程重新加载代码不正确。
【问题讨论】:
标签: python python-3.x flask werkzeug relative-import