1

簡単なスクリプトからは TextBlob モジュールを正常にロードできますが、Flask アプリからは正常にロードできません。コードとエラーを表示します。

簡単なスクリプトでの読み込みは次のように機能します。

from textblob import TextBlob

text = 'purfect kitten'

blob = TextBlob(text)
print blob.correct()

Flask アプリからロードするとエラーがスローされます:

from textblob import TextBlob
from flask import (
    Flask,
    request
)

app = Flask(__name__)

@app.route('/parse', methods=['GET', 'POST'])
def parse():
    b = TextBlob(request.json['text'])
    b.correct()
    return b

if __name__ == '__main__':
    print 'running app on port 5000'
    app.debug = True
    app.run()

エラー:

127.0.0.1 - - [2015 年 11 月 18 日 14:54:25] "POST /parse HTTP/1.1" 500 -
トレースバック (最新の呼び出しが最後):
  ファイル "/Users/peter/if/root/venv/lib/python2.7/site-packages/flask/app.py"、1836 行目、__call__ 内
    return self.wsgi_app(environ, start_response)
  ファイル「/Users/peter/if/root/venv/lib/python2.7/site-packages/flask/app.py」、行 1820、wsgi_app
    応答 = self.make_response(self.handle_exception(e))
  ファイル「/Users/peter/if/root/venv/lib/python2.7/site-packages/flask/app.py」、1403行目、handle_exception
    reraise(exc_type, exc_value, tb)
  ファイル「/Users/peter/if/root/venv/lib/python2.7/site-packages/flask/app.py」、行 1817、wsgi_app
    応答 = self.full_dispatch_request()
  ファイル "/Users/peter/if/root/venv/lib/python2.7/site-packages/flask/app.py"、1478 行目、full_dispatch_request
    応答 = self.make_response(rv)
  ファイル "/Users/peter/if/root/venv/lib/python2.7/site-packages/flask/app.py"、1577 行目、make_response
    rv = self.response_class.force_type(rv、request.environ)
  ファイル "/Users/peter/if/root/venv/lib/python2.7/site-packages/werkzeug/wrappers.py"、841 行目、force_type
    応答 = BaseResponse(*_run_wsgi_app(応答、環境))
  ファイル "/Users/peter/if/root/venv/lib/python2.7/site-packages/werkzeug/wrappers.py"、57 行目、_run_wsgi_app 内
    return _run_wsgi_app(*引数)
  ファイル "/Users/peter/if/root/venv/lib/python2.7/site-packages/werkzeug/test.py"、867 行目、run_wsgi_app 内
    app_rv = app(environ, start_response)
TypeError: 'TextBlob' オブジェクトは呼び出し可能ではありません

pip でインストールされた textblob バージョン 0.11.0 を使用しています。

4

1 に答える 1

3

TextBlob正常に動作しています。TextBlob問題は、Flaskアプリでの使用方法です。

Flaskapp.routeResponseorを返す必要がありますが、あなたはwhich をstr返しています。として返す必要があります。bTextBlobbstr

@app.route('/parse', methods=['GET', 'POST'])
def parse():
    b = TextBlob('hello world')
    b.correct()
    return str(b)
于 2015-11-18T20:13:34.147 に答える