在Pycharm中调试结构奇特的Flask应用

0 投票
1 回答
915 浏览
提问于 2025-04-17 19:59

我刚开始用PyCharm调试Flask,希望我问的问题不会太简单。

我有两个文件,code/__init__.pycode/runserver.py

__init__.py 文件是用来初始化我的Flask应用的,也就是说,里面有一段代码

app = Flask(__name__) 

而在 runserver.py 文件中,我有一段代码:

if __name__ == '__main__':
    main()

这个runserver是这样导入应用的:

from code import app, __app_name__, __version__

在主函数里面,有一些 parser.addoption 的命令,最后还有一段代码

def main():
    parser = OptionParser()
    parser.add_option("-d", "--debug", action="store_true",
                      default=app.config.get('DEBUG', True),
                      dest="debug", help="Turn on debugging")
    (options, args) = parser.parse_args()
    app.run(debug=options.debug, host=options.address, port=options.port)

那么在这种情况下,我该从哪里开始调试这个应用呢?我以为应该是 runserver.py,但是当我尝试调试时,得到的反馈是

ImportError: No module named code

不过如果我这样运行

python ${BASE}/code/runserver.py

就没有任何问题。

1 个回答

0

几个要点

1) 如果你想在PyCharm里调试程序,应该把默认的调试器设置为False(app.debug)。
2) 在PyCharm中,不要把/code/文件夹当作根目录,因为这样的话,导入时看不到任何代码。
如果你创建一个codeProject/code/文件夹,并把codeProject作为根目录在PyCharm中打开,然后运行codeProject/runserver.py或者codeProject/code/runserver.py,应该就没问题了。

撰写回答