Flask:使用重新加载器重新启动找不到文件

Flask: Restarting with reloader can't find file

我正在努力学习烧瓶。我在我的项目目录 (C:\users\ian\git\flasktutorial) 中创建了一个虚拟环境 (venv)。 FLASK_APP设置为flasktutorial,FLASK_DEBUG=1,我在目录中确实有一个flasktutorial.py。

当我输入 "flask run" 时,我得到以下信息:

* Serving Flask app "flasktutorial"
* Forcing debug mode on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with windowsapi reloader
c:\users\ian\git\flasktutorial\venv\scripts\python.exe: can't open file 'C:\users\Ian\Git\flasktutorial\venv\Scripts\flask': [Errno 2] No such file or directory

检查那个文件夹,里面似乎确实有一个 flask.exe。不确定这里发生了什么。

运行 flask 作为一个模块,然后重新加载器将在 Windows:

上工作
python -m flask run

解释:

在 Windows 中使用 flask.exe 启动应用程序时,重新加载程序会为新的子进程构造错误的参数。源代码 here.

它尝试运行 python 解释器使用 flask.exe 作为脚本名称,但是 没有扩展名 ,这就是原因对于找不到文件的错误。 如果你做了一个欺骗并将 Scripts/flask.exe 复制到 Scripts/flask 那么它就会起作用。 ;)

否则,当 运行ning flask 作为模块时,sys.argv 包含重新加载器到 运行 子进程的正确路径。