Ошибка наследования Language_check в Python - PullRequest
0 голосов
/ 20 октября 2018

Я хотел создать свой собственный класс Corr_tool, который наследуется от класса language_check.LanguageTool.Но это бросает мне кучу ошибок.Я хотел бы спросить, если есть какое-то правило, о котором я не знаю, потому что с другими импортированными классами наследование работает без проблем.

Это мой код:

from language_check import LanguageTool

class Corr_tool(LanguageTool):
    def __init__(self):
        super().__init__(language='en-GB')

tool1 = Corr_tool()

Ошибкивыглядит так:

in <module> tool1 = Correct_tool()
in __init__ super().__init__(language='en-GB')
in __init__ self._language = LanguageTag(language)
in __new__ return str.__new__(cls, cls._normalize(tag))
in _normalize for language in get_languages()}
in get_languages languages = LanguageTool._get_languages()
in _get_languages cls._start_server_if_needed()
in _get_languages ls._start_server_if_needed()
in _start_server_if_needed cls._start_server_on_free_port()
in _start_server_on_free_port cls._start_local_server()
in _start_local_server startupinfo=startupinfo
in __init__ restore_signals, start_new_session)
line 1155, in _execute_child startupinfo)
OSError: [WinError 87] The parameter is incorrect

Я что-то упустил?Спасибо за любые объяснения или помощь.

РЕДАКТИРОВАТЬ

Когда я использую этот код:

from language_check import LanguageTool

tool1 = LanguageTool('en-GB')
text = u'A sentence with a error in the Hitchhiker’s Guide tot he Galaxy'
matches = tool1.check(text)
for match in matches:
    print(match)  

все работает нормально.Но когда я пытаюсь наследовать от этого класса, если получаю ошибки.Если бы была проблема с Windows, разве эта проблема не возникнет и с этим кодом?

EDIT 2

Это сводит меня с ума.Почему этот код работает просто отлично:

from language_check import LanguageTool

tmp_tool = LanguageTool('en-GB')

class Corr_tool(LanguageTool):
    def __init__(self, lang):
        super().__init__(language = lang)

tool = Corr_tool('en-GB')

Но этот код не работает (и выдает ошибки, которые я уже написал здесь):

from language_check import LanguageTool

class Corr_tool(LanguageTool):
    def __init__(self, lang):
        super().__init__(language = lang)

tool = Corr_tool('en-GB')

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Казалось бы, библиотека не совместима с Windows.Код OSError (87) относится к попытке создания нового процесса с помощью разветвления (что недоступно в Windows).

Возможны следующие варианты:

  • перенести вашкод для совместимой платформы.например.GNU / Linux, OSX или BSD.
  • найдите другую библиотеку
  • убедите автора библиотеки сделать модуль совместимым с Windows.Это кажется маловероятным, учитывая, что этот запрос функции , кажется, был сделан еще в 2015 году, но все еще не реализован.
0 голосов
/ 20 октября 2018
from language_check import LanguageTool

class Corr_tool(LanguageTool):
    def __init__(self):
        super().__init__(language='en-GB')

tool = Corr_tool()
text = u"A sentence with a error in the Hitchhiker's Guide tot he Galaxy"
matches = tool.check(text)
for match in matches:
    print(match)

Без ошибок

Печать:

Line 1, column 17, Rule ID: EN_A_VS_AN
Message: Use 'an' instead of 'a' if the following word starts with a vowel sound, e.g. 'an article', 'an hour'
Suggestion: an
A sentence with a error in the Hitchhiker’s Guide tot he ...
                ^
Line 1, column 32, Rule ID: MORFOLOGIK_RULE_EN_GB
Message: Possible spelling mistake found
Suggestion: Hitch-hiker
A sentence with a error in the Hitchhiker’s Guide tot he Galaxy
                               ^^^^^^^^^^
Line 1, column 51, Rule ID: TOT_HE[1]
Message: Did you mean 'to the'?
Suggestion: to the
... with a error in the Hitchhiker’s Guide tot he Galaxy

Похоже, что все хорошо с Python v3.6.4, language_check v1.1 и java 1.8 на Windows 8

...