语言检查OSError:[WinError 87]参数在

2024-04-19 20:05:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试为Python使用language-tool包时遇到了一个问题。使用language-check包时也会发生同样的错误。在我看来,这个问题显然与language-tool包本身有关,因为Java本身和我的LanguageTool服务器都在运行。在

我在运行Java10的Windows10上。我还尝试了java8,它可以完全与LanguageTool一起工作。Java8以类似的方式引发了另一个错误。在

LanguageTool本身可以从命令行工作,GUI也可以工作。我也在http://localhost:8081/v2/check?language=en-US&text=my+text的浏览器上成功地测试了LanguageTool服务器。在

除了重新安装language-tool包之外,我还尝试用三种方式为Python启动自己的LanguageTool Java服务器。这三种方法在Python中都返回相同的错误。第一种方法是从Jupyter笔记本中运行以下代码:

import language_tool as lt
text = "This is very interesting text"
lt.correct(text, (lt.LanguageTool("en-US")).check(text))

这将返回一个非常详细的错误:

^{pr2}$

第二种方法是通过命令行运行java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port 8081来启动服务器,然后在同一窗口中从python终端运行相同的代码。这将返回:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python37\lib\site-packages\language_tool\__init__.py", line 188, in __init__
    self._start_server_on_free_port()
  File "C:\Program Files\Python37\lib\site-packages\language_tool\__init__.py", line 323, in _start_server_on_free_port
    cls._start_server()
  File "C:\Program Files\Python37\lib\site-packages\language_tool\__init__.py", line 347, in _start_server
    startupinfo=startupinfo
  File "C:\Program Files\Python37\lib\subprocess.py", line 756, in __init__
    restore_signals, start_new_session)
  File "C:\Program Files\Python37\lib\subprocess.py", line 1155, in _execute_child
    startupinfo)
OSError: [WinError 87] The parameter is incorrect

我尝试启动服务器的第三种方法是使用语言工具GUI并从笔记本上运行关于的代码,这将返回相同的详细输出。在

最后,我尝试了java8。在笔记本中,返回了以下错误:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
c:\program files\python37\lib\site-packages\language_tool\__init__.py in get_languages()
    489     try:
--> 490         languages = cache["languages"]
    491     except KeyError:

KeyError: 'languages'

During handling of the above exception, another exception occurred:

HTTPError                                 Traceback (most recent call last)
c:\program files\python37\lib\site-packages\language_tool\__init__.py in _get_root(cls, url, data, num_tries)
    309             try:
--> 310                 with urlopen(url, data, cls._TIMEOUT) as f:
    311                     return ElementTree.parse(f).getroot()

c:\program files\python37\lib\urllib\request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context)
    221         opener = _opener
--> 222     return opener.open(url, data, timeout)
    223 

c:\program files\python37\lib\urllib\request.py in open(self, fullurl, data, timeout)
    530             meth = getattr(processor, meth_name)
--> 531             response = meth(req, response)
    532 

c:\program files\python37\lib\urllib\request.py in http_response(self, request, response)
    640             response = self.parent.error(
--> 641                 'http', request, response, code, msg, hdrs)
    642 

c:\program files\python37\lib\urllib\request.py in error(self, proto, *args)
    568             args = (dict, 'default', 'http_error_default') + orig_args
--> 569             return self._call_chain(*args)
    570 

c:\program files\python37\lib\urllib\request.py in _call_chain(self, chain, kind, meth_name, *args)
    502             func = getattr(handler, meth_name)
--> 503             result = func(*args)
    504             if result is not None:

c:\program files\python37\lib\urllib\request.py in http_error_default(self, req, fp, code, msg, hdrs)
    648     def http_error_default(self, req, fp, code, msg, hdrs):
--> 649         raise HTTPError(req.full_url, code, msg, hdrs, fp)
    650 

HTTPError: HTTP Error 400: Bad Request

During handling of the above exception, another exception occurred:

Error                                     Traceback (most recent call last)
<ipython-input-1-116c54f6eff2> in <module>()
      1 import language_tool as lt
      2 text = "This is very interesting text"
----> 3 lt.correct(text, (lt.LanguageTool("en-US")).check(text))

c:\program files\python37\lib\site-packages\language_tool\__init__.py in __init__(self, language, motherTongue)
    192             except ValueError:
    193                 language = FAILSAFE_LANGUAGE
--> 194         self._language = LanguageTag(language)
    195         self.motherTongue = motherTongue
    196         self.disabled = set()

c:\program files\python37\lib\site-packages\language_tool\__init__.py in __new__(cls, tag)
    409     def __new__(cls, tag):
    410         # Can’t use super() here because of 3to2.
--> 411         return str.__new__(cls, cls._normalize(tag))
    412 
    413     def __eq__(self, other):

c:\program files\python37\lib\site-packages\language_tool\__init__.py in _normalize(cls, tag)
    429         if not tag:
    430             raise ValueError("empty language tag")
--> 431         languages = {l.lower().replace("-", "_"): l for l in get_languages()}
    432         try:
    433             return languages[tag.lower().replace("-", "_")]

c:\program files\python37\lib\site-packages\language_tool\__init__.py in get_languages()
    490         languages = cache["languages"]
    491     except KeyError:
--> 492         languages = LanguageTool._get_languages()
    493         cache["languages"] = languages
    494     return languages

c:\program files\python37\lib\site-packages\language_tool\__init__.py in _get_languages(cls)
    288         url = urllib.parse.urljoin(cls._url, "Languages")
    289         languages = set()
--> 290         for e in cls._get_root(url, num_tries=1):
    291             languages.add(e.get("abbr"))
    292             languages.add(e.get("abbrWithVariant"))

c:\program files\python37\lib\site-packages\language_tool\__init__.py in _get_root(cls, url, data, num_tries)
    314                     cls._start_server()
    315                 else:
--> 316                     raise Error("{}: {}".format(cls._url, e))
    317 
    318     @classmethod

Error: http://127.0.0.1:8081: HTTP Error 400: Bad Request

我已经彻底查阅了文档,并尝试了其他一些命令,所有这些命令都返回相同的错误。在

我花了太长时间弄清楚了。任何帮助解决或故障排除将是超级,超级感谢!在


Tags: textinpyselfinitlibpackagessite