在Pycharm中调试结构奇特的Flask应用
我刚开始用PyCharm调试Flask,希望我问的问题不会太简单。
我有两个文件,code/__init__.py
和 code/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,应该就没问题了。