Flask演示应用程序不起作用

时间:2015-11-10 15:43:32

标签: python flask werkzeug

我想尝试使用Flask最小应用程序。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

工作正常。如果我在app.debug = True之前添加run(),则无效。

错误是:

Traceback (most recent call last):
  File "app.py", line 10, in <module>
    app.run()
  File "C:\Python34\lib\site-packages\flask\app.py", line 772, in run
    run_simple(host, port, self, **options)
  File "C:\Python34\lib\site-packages\werkzeug\serving.py", line 666, in run_simple
    os.set_inheritable(s.fileno(), True)
OSError: [Errno 9] Bad file descriptor

我使用了Python 3.4.3,Flask 0.10.1,Werkzeug 0.11.1和Windows 10.无论是否使用virtualenv的行为都是一样的。

1 个答案:

答案 0 :(得分:2)

我在使用Python 3.4.2的Windows 7上遇到了同样的问题。我最终不得不将Werkzeug从版本0.11.1降级为0.10.4。完全披露,我不是一个Python开发人员,因为我在我的日常工作中编写.NET并且正在学习Python,因此我无法在此完全解释其中的原因。另外,我刚刚选择了一个版本,转到Pypi并打印“Werkzeug”。如果您不知道,pypi.python.org是您的pip安装的来源; - )。

为了实现这一点,我最终卸载了Werkzeug,然后通过在pip中指定版本来重新安装它。这在我的全球环境以及我项目中的“virtualenv”中对我有用。

pip uninstall Werkzeug
pip install Werkzeug==0.10.4

修改

以下是我的requirements.txt文件的内容。您可以通过运行命令pip install -r requirements.txt卸载已安装的所有不同软件包并安装这些特定版本,假设您的工作目录位于requirements.txt所在且您的virtualenv当前处于活动状态。在Windows中,您可以根据需要使用相对路径: - )。

itsdangerous==0.24
Werkzeug==0.10.4
WTForms==2.0.2
SQLAlchemy==1.0.9
MarkupSafe==0.23
Jinja2==2.8
Flask==0.10.1
Flask-SQLAlchemy==2.1
Flask-WTF==0.10