2016-09-28 13 views
0

このチュートリアルの後にwsgiサーバーを作成しようとしていますLet's Build a Web Server. エラーTypeError: initial_value must be str or None, not bytes python 3.5.2で以下のコードを使用してエラーが発生しました。Python 3.5.2でタイプエラーが発生しました

import io 
env['wsgi.input']  = io.StringIO(self.request_data) 

どうすれば問題を解決できますか。前もって感謝します。

答えて

1

変更がうまくいけば、これでうまくいきました。

0

まず、あなたがPEP3333による

をのpython3に直接それを適用しようとする場合は、追加の問題に実行するので、そのチュートリアルは、python2を使用しています(WSGI仕様はのpython3用に更新)wsgi.inputenviron variableバイトストリームでなければなりませんテキストストリームではないため、io.StringIOではなくio.BytesIO()を使用してください。

self.request_databytesですが、io.StringIO()の引数はstrである必要があるため、現在入手しているエラーはありません。 import StringIOrequest_line=request_line.rstrip('\r\n')env['wsgi.input']=StringIO.StringIO(self.request_data)self.client_connection.sendall(response)

self.client_connection.sendall(response.encode())に変更

env['wsgi.input'] = io.BytesIO(self.request_data)に変更

request_line=request_line.rstrip(b'\r\n')に変更

import io

関連する問題