问题
我启动了flask应用程序,当我使用“运行”或“调试”时,该应用程序运行良好。但是,使用“配置文件”时出现错误,这是日志消息
In folder C:/Users/Myname/PycharmProjects/ProjectName
"C:\Users\Myname\Anaconda3\envs\ProjectName\python.exe" "C:\Program Files\JetBrains\PyCharm
Professional Edition with Anaconda plugin 2019.2.4\helpers\profiler\run_profiler.py" 127.0.0.1 12055 -m flask run
Starting cProfile profiler
Traceback (most recent call last):
Snapshot saved to C:\Users\Myname/.PyCharm2019.2/system\snapshots\ProjectName1.pstat
File "C:\Program Files\JetBrains\PyCharm Professional Edition with Anaconda plugin 2019.2.4\helpers\profiler\run_profiler.py", line 173, in <module>
profiler.run(file)
File "C:\Program Files\JetBrains\PyCharm Professional Edition with Anaconda plugin 2019.2.4\helpers\profiler\run_profiler.py", line 89, in run
execfile(file, globals, globals) # execute the script
File "C:\Program Files\JetBrains\PyCharm Professional Edition with Anaconda plugin 2019.2.4\helpers\profiler\prof_util.py", line 30, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:\Users\Myname\Anaconda3\envs\ProjectName\lib\site-packages\flask\__init__.py", line 19, in <module>
from . import json
ImportError: attempted relative import with no known parent package
我尝试过的
我用Google搜索它,发现它是一个老问题。
Can't profile module using relative imports
Pycharm profile is not working
如何复制
如果您想复制它,可以使用pycharm创建一个flask应用程序,然后单击“配置文件”。
flask应用程序的默认代码如下。但我认为这并不重要。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
由于烧瓶版本或Pycharm版本的更改,错误消息可能有所不同,但是原因相同:File "xxx\lib\site-packages\flask\__init__.py", line 19, in <module>
使用相对导入并导致ImportError
我的问题
我的问题是,有没有办法使它起作用?任何黑客或技巧也将不胜感激。我只想立即使用个人资料。谢谢
显然,这是PyCharm的探查器的长期存在的问题,它无法正确运行packages,导致sys.path不稳定并且相对导入失败:https://youtrack.jetbrains.com/issue/PY-28509
[我猜一个选择是仅复制what flask.__main__
does,即可制作自己的“启动脚本”。
尽管<也可以通过运行flask.__main__
而不只是-m flask.cli
来解决(我不知道,我没有对其进行测试):它执行相同的操作,但是不调用[ C0]文件,使其性能更好。