1

uwsgi の --paste オプションを使用してピラミッド アプリケーションを提供しようとしていますが、PasteDeploy が TypeError をスローしています (Python3 から来ていると思います)。

File "/home/admin/.mozaiqu.es.env/lib/python3.2/site-packages/paste/deploy/loadwsgi.py", line 277, in loadcontext
    if '#' in uri:
TypeError: Type str doesn't support the buffer API

私が使用しているコマンド:

uwsgi --paste development.ini --socket :3031 -H /home/admin/.mozaiqu.es.env

PasteDeploy と uwsgi は Python3 に適していると思っていましたが、そうではありませんか?

私は何か間違っていますか?

4

2 に答える 2

2

Python 3.2で同じ問題が発生しました。loadcontextofに以下を追加して、問題を一時的に解決しましたloadwsgi.py

if isinstance(uri, bytes):
    uri = uri.decode('utf-8')

これは、少しコンテキストを追加したものです。

def loadcontext(object_type, uri, name=None, relative_to=None,
                global_conf=None):
    if isinstance(uri, bytes):
        uri = uri.decode('utf-8')
    if '#' in uri:
        if name is None:
            uri, name = uri.split('#', 1)
        else:
            # @@: Ignore fragment or error?                                             
            uri = uri.split('#', 1)[0]
于 2012-07-27T00:14:41.733 に答える
1

Python 3.0 urllib.parse エラー「タイプ str はバッファ API をサポートしていません」を参照してください。

発生しているエラーを別のコンテキストで説明しています。エラーは基本的に python 3.x のバグです。バイト文字列とユニコード文字列の間のメッシュに問題があるため、いくつかのエラーが発生します。上記の投稿の最初の回答は、より明確に説明しています。

于 2012-07-04T16:56:17.780 に答える