PyCharm创建Flask虚拟环境项目启动Python控制台报错
Flask控制台启动报错
ModuleNotFoundError: No module named 'wsgi'的解决方法 问题现象
在PyCharm中使用虚拟环境创建Flask项目后,Flask服务器可正常运行,但启动Python控制台时出现如下报错:
import sys sys.path.extend(['C:\Users\admin\Desktop\flaskProject', 'C:/Program Files/JetBrains/PyCharm 2023.1.3/plugins/python/helpers/pycharm', 'C:/Program Files/JetBrains/PyCharm 2023.1.3/plugins/python/helpers/pydev']) from flask.cli import ScriptInfo locals().update(ScriptInfo(create_app=None).load_app().make_shell_context()) print("Python %s on %s App: %s [%s] Instance: %s" % (sys.version, sys.platform, app.import_name, app.env, app.instance_path)) PyDev console: starting. Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm 2023.1.3\plugins\python\helpers\pydev\pydevconsole.py", line 364, in runcode coro = func() ^^^^^^ File "<input>", line 6, in <module> File "C:\Users\admin\.virtualenvs\flaskProject-9hB4V9OB\Lib\site-packages\flask\cli.py", line 313, in load_app app = locate_app(import_name, None, raise_if_not_found=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\admin\.virtualenvs\flaskProject-9hB4V9OB\Lib\site-packages\flask\cli.py", line 224, in locate_app raise NoAppException( flask.cli.NoAppException: While importing 'wsgi', an ImportError was raised: Traceback (most recent call last): File "C:\Users\admin\.virtualenvs\flaskProject-9hB4V9OB\Lib\site-packages\flask\cli.py", line 219, in locate_app __import__(module_name) File "C:\Program Files\JetBrains\PyCharm 2023.1.3\plugins\python\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import module = self._system_import(name, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ModuleNotFoundError: No module named 'wsgi'
问题原因
PyCharm默认的Flask控制台初始化脚本会尝试自动定位Flask应用,当ScriptInfo(create_app=None)未指定应用入口时,Flask会按默认规则查找名为wsgi的模块,但你的项目中不存在该模块(通常Flask应用实例会放在app.py或自定义命名的文件中),因此触发找不到模块的错误。而Flask服务器能正常运行,是因为服务器配置中已经指定了正确的应用入口文件。
解决步骤
步骤1:确认Flask应用入口文件
找到项目中定义app = Flask(__name__)的文件,比如常见的app.py或你自定义的文件名(如main.py)。步骤2:修改PyCharm的Python控制台启动脚本
- 打开
File > Settings > Build, Execution, Deployment > Console > Python Console(Windows/Linux),或PyCharm > Settings > ...(Mac) - 在
Starting script区域,替换默认脚本为以下内容(将app替换为你的应用入口文件名,不带.py后缀):import sys sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS]) from flask.cli import ScriptInfo # 指定你的应用模块名,比如app.py就写'app' locals().update(ScriptInfo(create_app=None, import_name='app').load_app().make_shell_context()) print("Python %s on %s\nApp: %s [%s]\nInstance: %s" % (sys.version, sys.platform, app.import_name, app.env, app.instance_path)) - 点击
Apply和OK保存配置,重新启动Python控制台即可正常使用。
- 打开
备选方案:手动导入应用
如果不想修改全局配置,也可以在控制台启动后手动执行导入命令:from app import app # 这里的app是你的应用文件名和实例名,按需修改
内容的提问来源于stack exchange,提问作者Giorgi Vashakmadze
相关产品推荐
相关产品推荐

