Python 使用pycharm配置文件时导入错误

Python 使用pycharm配置文件时导入错误,python,flask,pycharm,Python,Flask,Pycharm,问题 我启动了一个flask应用程序,当我使用run或debug时,它可以正常工作。但是,我在使用概要文件时遇到了错误,下面是日志消息 In folder C:/Users/Myname/PycharmProjects/ProjectName "C:\Users\Myname\Anaconda3\envs\ProjectName\python.exe" "C:\Program Files\JetBrains\PyCharm Professional Edition with Anaconda

问题

我启动了一个flask应用程序,当我使用run或debug时,它可以正常工作。但是,我在使用概要文件时遇到了错误,下面是日志消息

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
由于flask版本或Pycharm版本的更改,错误消息可能会有所不同,但原因是相同的:文件xxx\lib\site packages\flask\ \uuuuuu init\uuuuuuuu.py,第19行,正在使用相对导入并导致导入错误

我的问题

我的问题是,有没有办法让它发挥作用?任何黑客或诡计也将受到赞赏。我现在只想使用个人资料。谢谢

[新解决方案] 多亏了@masklin,使用-m flask.cli instrade of-m flask就可以解决这个问题。但是,pycharm flask中的配置默认使用-m flask,我找不到修改它的方法。因此,我建议使用pycharm-python。脚本路径应设置为FLASK_应用程序,并在附加选项中添加-m FLASK.cli

[过时的解决方案] 一种解决方案是直接修改_init__uuu.py使其工作。例如,改变

from . import json
from .app import Flask


显然,这是PyCharm的profiler长期存在的问题,它无法正确运行包,导致sys.path不稳定,相对导入失败:

我想一个选择是简单地复制自己的启动程序脚本


虽然如果您运行-m flask.cli而不是我不知道的-m flask,事情也可能会解决,但我没有测试它:它执行相同的操作,但不调用_umain__;文件,因此它可以表现得更好。

是的,使用-m flask.cli可以解决问题。我更新了答案以显示如何在pycharm中配置它
from . import json
from .app import Flask
from flask import json
from flask.app import Flask