【问题标题】:Python 2.7 - grammar-check 1.3.1 library: HTTP Error 400: Bad RequestPython 2.7 - 语法检查 1.3.1 库:HTTP 错误 400:错误请求
【发布时间】:2017-07-31 10:01:49
【问题描述】:

我正在尝试为 Python 使用 grammar-check 1.3.1

我已经使用 pip 命令安装了它

$ pip install --upgrade 3to2

$ pip install --upgrade language-check

我还从 link 解压缩了 LanguageTool 文件并将其移至 C:\Users\me\AppData\Roaming\Python\Python27\site-packages\grammar_check

然后我尝试运行一个测试程序

import grammar_check
tool = grammar_check.LanguageTool('en-GB')
text = 'This are bad.'
matches = tool.check(text)
len(matches)

但是我收到了这个错误:

Traceback (most recent call last):
  File "grammar-checker-test.py", line 2, in <module>
    tool = grammar_check.LanguageTool('en-GB')
  File "C:\Users\me\AppData\Roaming\Python\Python27\site-packages\grammar_check\__init__.py", line 196, in __init__
    self._language = LanguageTag(language)
  File "C:\Users\me\AppData\Roaming\Python\Python27\site-packages\grammar_check\__init__.py", line 405, in __new__
    return unicode.__new__(cls, cls._normalize(tag))
  File "C:\Users\me\AppData\Roaming\Python\Python27\site-packages\grammar_check\__init__.py", line 426, in _normalize
    for language in get_languages())
  File "C:\Users\me\AppData\Roaming\Python\Python27\site-packages\grammar_check\__init__.py", line 485, in get_languages
    languages = LanguageTool._get_languages()
  File "C:\Users\me\AppData\Roaming\Python\Python27\site-packages\grammar_check\__init__.py", line 286, in _get_languages
    for e in cls._get_root(url, num_tries=1):
  File "C:\Users\me\AppData\Roaming\Python\Python27\site-packages\grammar_check\__init__.py", line 311, in _get_root
    raise Error(u'{}: {}'.format(cls._url, e))
grammar_check.Error: http://127.0.0.1:8081: HTTP Error 400: Bad Request

我该如何解决这个错误?

【问题讨论】:

    标签: python python-2.7 bad-request languagetool


    【解决方案1】:

    我遇到了这个错误:

    grammar_check.Error: http://127.0.0.1:8081:
    

    我不确定为什么必须在本地计算机上启动服务器,因为这段代码正是这样做的:

    tool = grammar_check.LanguageTool('en-GB')
    

    如果您将在 8081 上运行另外一台 language_tool 服务器,那么它将尝试在端口 8082 上启动服务器,如果 8083 上的服务器繁忙,然后将失败(在我的情况下发生了这种情况)。

    对于我的错误,我不得不调试很多,最后发现服务器无法运行,因为我的 JAVA 运行时环境搞砸了。

    【讨论】:

    • 我成功地使用了language_check 库而不是它的grammar_check 包装器。
    【解决方案2】:

    问题是我没有运行 LanguageTool 服务器。

    为了做到这一点,我必须检查我的 Grammar_check 文件夹中是否有 LanguageTool 文件夹(它的版本必须是

    然后使用 cmd shell 我必须移动到这个 LanguageTool 文件夹,在我的例子中,它位于这个路径中:

    C:\Users\me\AppData\Roaming\Python\Python27\site-packages\grammar_check\LanguageTool-2.2
    

    比,我必须用这个命令运行服务器

    java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port 8081
    

    瞧,grammar_check 运行良好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2012-02-09
      相关资源
      最近更新 更多