codeacademyの無料レッスンを終えたばかりの完全なpython入門者として、私はthis Python wfastcgi 2.2 pageの指示に従い、IISにpythonハンドラを正常にインストールしました。WFastCGI + IIS + Python 3.4でPython Webプログラミングを開始するには?
は、その後、私は(私はどこかから適合)以下のコードでweb.config
に従ってPythonのファイル(モジュール)my_app.py
を作成した:
def wsgi_app(environ, start_response):
status = '200 OK'
response_headers = [('Content-type','text/plain')]
start_response(status, response_headers)
return ['Hello world!\n']
ローカルホストサイトにナビゲートすると、IISは次のエラーを戻します。
Error occurred while reading WSGI handler:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\wfastcgi.py", line 779, in main
env, handler = read_wsgi_handler(response.physical_path)
File "C:\Python34\lib\site-packages\wfastcgi.py", line 621, in read_wsgi_handler
handler = get_wsgi_handler(os.getenv('WSGI_HANDLER'))
File "C:\Python34\lib\site-packages\wfastcgi.py", line 594, in get_wsgi_handler
handler = handler()
TypeError: wsgi_app() missing 2 required positional arguments: 'environ' and 'start_response'
StdOut:
StdErr:
質問:
- 2つの関数の引数にはどのように渡されますか?
- 関数を使ってモジュールを起動することは良い考えのようではありません。代わりにクラスを使うことはできますか?もしそうなら、どのように私はこのライン上で私の
web.config
を変更する必要があります。
<add key="WSGI_HANDLER" value="my_app.wsgi_app()" />
エラー出力の最後のツリー行は何を意味しますか? – linusg
WSGIは関数を呼び出さないため、渡す内容について心配する必要はありません。 Pythonはトップレベルの機能を持つことで完璧です。ここにクラスは必要ありません。最後に、そのコードはそのエラーを与えません。実際のコードを投稿してください。 –
あなたは正しいです。私が思うデフォルトの文書処理を乱すindex.phpがありました。エラーを更新しました。 – Jake