IIS を介して単純な CGI アプリとして Flask を実行しようとしています。
次のコードがあります。
from wsgiref.handlers import CGIHandler
from flask import Flask
app = Flask(__name__)
@app.route('/')
def main():
return 'Woo woo!'
CGIHandler().run(app)
WindowsでPython 3.3を実行しています。次のエラーが表示されます。
File "C:\Python33\lib\wsgiref\handlers.py",
line 509, in __init__(self, sys.stdin.buffer, sys.stdout.buffer, sys.stderr, )
AttributeError: 'NoneType' object has no attribute 'buffer' ".
ロギング コードを追加したところsys.stdin
、None
.
Python は、次のように CGI ハンドラーとして IIS に追加されます。
Request path: *.py
Executable: C:\Windows\py.exe -3 %s %s
では、なぜ sys.stdin None なのですか?どうすれば修正できますか?
編集
ファイル記述子が無効なため、sys.stdin は None のようです。