【问题标题】:Flask: Restarting with reloader can't find file [duplicate]Flask:使用重新加载器重新启动找不到文件[重复]
【发布时间】:2016-06-30 04:09:04
【问题描述】:

我正在尝试学习烧瓶。我在我的项目目录 (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。不知道这里发生了什么。

【问题讨论】:

  • 一个超出范围的建议:将您的操作系统切换到 Linux。它会回报你花在它上面的时间。现在您将解决使用 Windows 作为 Python 开发环境的副作用。

标签: python flask virtualenv


【解决方案1】:

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

python -m flask run

解释:

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

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

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

【讨论】:

  • 漂亮,非常感谢!你知道为什么会这样吗?
  • 我添加了我知道的原因。
猜你喜欢
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
相关资源
最近更新 更多