Python 2.7-语法检查1.3.1库:HTTP错误400:错误请求

Python 2.7-语法检查1.3.1库:HTTP错误400:错误请求,python,python-2.7,bad-request,languagetool,Python,Python 2.7,Bad Request,Languagetool,我正在尝试使用Python的语法检查1.3.1库 我已经使用pip命令安装了它 $ pip install --upgrade 3to2 $ pip install --upgrade language-check 我还从这里解压了LanguageTool文件,并将其移动到C:\Users\me\AppData\Roaming\Python\Python27\site packages\grammar\u check 然后我试着运行一个测试程序 import grammar_check to

我正在尝试使用Python的
语法检查1.3.1

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

$ pip install --upgrade 3to2

$ pip install --upgrade language-check
我还从这里解压了LanguageTool文件,并将其移动到
C:\Users\me\AppData\Roaming\Python\Python27\site packages\grammar\u 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
grammar_check.Error: http://127.0.0.1:8081:
回溯(最近一次呼叫最后一次):
文件“语法检查器test.py”,第2行,在
tool=语法检查语言工具('en-GB')
文件“C:\Users\me\AppData\Roaming\Python27\site packages\grammar\u check\uuuuu init\uuuuu.py”,第196行,在\uuu init中__
self.\u language=LanguageTag(语言)
文件“C:\Users\me\AppData\Roaming\Python27\site packages\grammar\u check\uuuuu init\uuuuuu.py”,第405行,新文件__
返回unicode.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
文件“C:\Users\me\AppData\Roaming\Python27\site packages\grammar\u check\uuuuu init\uuuuuu.py”,第426行,在规范化中
对于get_languages()中的语言
文件“C:\Users\me\AppData\Roaming\Python27\site packages\grammar\u check\uuuuu init\uuuuuu.py”,第485行,使用get\u语言
语言=语言工具。_get_languages()
文件“C:\Users\me\AppData\Roaming\Python27\site packages\grammar\u check\u init\u\u.py”,第286行,使用get\u语言
对于cls中的e.\u get\u root(url,num\u trys=1):
文件“C:\Users\me\AppData\Roaming\Python27\site packages\grammar\u check\uuuuu init\uuuuuu.py”,第311行,在根目录下
引发错误(u'{}:{}'。格式(cls.\u url,e))
语法检查错误:http://127.0.0.1:8081: HTTP错误400:请求错误

如何解决此错误?

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

为了做到这一点,我必须检查我的语法检查文件夹中是否有LanguageTool文件夹(它的版本必须<3.3,在我的例子中是2.2)

然后使用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

瞧,语法检查很好

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

为了做到这一点,我必须检查我的语法检查文件夹中是否有LanguageTool文件夹(它的版本必须<3.3,在我的例子中是2.2)

然后使用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
瞧,语法检查很好

我有个错误:

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
grammar_check.Error: http://127.0.0.1:8081:
我不知道为什么您必须在本地计算机上启动服务器,因为这段代码正是这样做的:

tool = grammar_check.LanguageTool('en-GB')
若您将在8081上运行另一个语言工具服务器,那个么它将尝试在端口8082上启动服务器,若8083上的服务器忙,那个么它将失败(在我的例子中就是这样)

无论如何,对于我的错误,我不得不进行大量调试,最终发现服务器无法运行,因为我的JAVA运行时环境一团糟。

我出现了以下错误:

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
grammar_check.Error: http://127.0.0.1:8081:
我不知道为什么您必须在本地计算机上启动服务器,因为这段代码正是这样做的:

tool = grammar_check.LanguageTool('en-GB')
若您将在8081上运行另一个语言工具服务器,那个么它将尝试在端口8082上启动服务器,若8083上的服务器忙,那个么它将失败(在我的例子中就是这样)


不管怎样,为我的错误,我不得不进行大量调试,最终发现服务器无法运行,因为我的JAVA运行时环境一团糟。

我成功地使用了
语言检查
库而不是
语法检查
包装器。我成功地使用
语言检查
库而不是
语法检查
包装纸。