3
我想通過IIS運行Flask作爲一個簡單的CGI應用程序。什麼時候sys.stdin在Python中沒有?
我有以下代碼:
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是添加到IIS的CGI處理程序如下:
Request path: *.py
Executable: C:\Windows\py.exe -3 %s %s
那麼,爲什麼sys.stdin無,我怎麼能解決這個問題?
編輯
看起來sys.stdin是沒有,因爲file descriptor is invalid。
這最終成爲我的解決方案的一半 - 另一半使用'IISCGIHandler()',因爲顯然IIS有一些問題。另外,我剛剛用'os.devnull'取代了'stdin',並且生活很美好。 –