Inkscape продолжает запрашивать «обертку lmxl» при доступе к встроенным расширениям, независимо от того, что - PullRequest
0 голосов
/ 29 июня 2019

Мой вопрос может быть не очень кратким. Пожалуйста, прости меня за это, когда я делаю отчаянные попытки решить мою проблему. Иногда я даже звучу как идиот.

Я использую Inkscape v0.92.4 на 32-битном компьютере с Windows 10 Pro.

Проблема возникает, когда я пытаюсь получить доступ к расширению «Диаграмма Вороного» в Inkscape. Как только я нажимаю применить, это возникает:

The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension.Please download and install the latest version from http://cheeseshop.python.org/pypi/lxml/, or install it through your package manager by a command like: sudo apt-get install python-lxml

Technical details:
cannot import name etree

Это может выглядеть как старая, возможно, уже решенная проблема, но похоже, что все шансы сложены против меня.

Попытка 1:

Погуглив проблему, я попал здесь . После этого я попытался добавить и изменить переменную «PYTHONHOME» из параметра «Переменные среды» в разделе «Дополнительные параметры системы» в разделе «Параметры системы» на панели управления. Как и следовало ожидать, не повезло.

Попытка 2:

Второй результат поиска Google привел меня к сайту Stack Overflow . Соответственно, я удалил и Inkscape, и Python, переустановил Python v3.7.3 (хотя парень установил версию Python 2.x), установил оболочку lxml через PIP:

pip install lxml

затем переустановил Inkscape, не снимая флажок «Python 2.x» во время установки. Похоже, на этот раз они ДЕЙСТВИТЕЛЬНО распознали «lxml wrapper», который я установил, но обнаружили другую ошибку:

Fatal Python error: initfsencoding: unable to load the file system codec
  File "F:\Inkscape\python\Lib\encodings\__init__.py", line 123
    raise CodecRegistryError,\
                            ^
SyntaxError: invalid syntax

Current thread 0x00000940 (most recent call first):

Так что да, опять не повезло.

Попытка 3:

Обдумывая вышеупомянутую ошибку, я предположил, что эта ошибка возникла, потому что Inkscape не поддерживает Python 3.x, поэтому, проводя дополнительные исследования (поиск «совместим ли inkscape с Python 3»), я натолкнулся на другую Статья переполнения стека и я подумал, что проблема чем-то похожа на мою. Тем не менее, я ВСЕ ЕЩЕ не установил Python 2.x и попробовал то же самое, но со ссылкой на интерпретатор Python 3.x. (Я предлагаю вам перейти по ссылке, но если вы спешите, вот что я сделал: 1. Заголовок к C: \ Users \ N \ AppData \ Roaming \ inkscape \ prefereces.xml 2. Поиск группы с идентификатором «расширения» и добавлением «python-interpreter =" C: \ Users \ Sirajuddin \ AppData \ Local \ Programs \ Python \ Python37-32 \ python.exe "')

Не работает (полностью ожидаемый). Затем я попытался создать ссылку на каталог Python в самом каталоге Inkscape (F: \ Inkscape \ python). Оказывается, на этот раз они вернулись к самой основной проблеме "lxml wrapper required". Поэтому я скопировал две папки из моего каталога Python (C: \ Users \ N \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ site-packages) и вставил его в F: \ Inkscape \ python \ Lib \ site -packages. Угадай, что, все равно не повезло.

Попытка 4 (Последняя попытка):

На этот раз я наконец установил Python v2.7.16 (однако я настаивал на том, чтобы сохранить версию Python 3.x, так как именно эту версию я научился кодировать и с которой я работаю). Проделав те же шаги, что и в «Попытке № 3», теперь я связался со своей папкой Python 2.x. Тем не менее, Inkscape снова возвращается к самой основной проблеме «lxml wrapper required». Я тестировал с помощью командной строки, и я мог использовать оба Python 3.x и 2.x отдельно, учитывая, что я ссылаюсь на их соответствующие каталоги. Однако, если я пытаюсь установить lxml wrapper через PIP в каталоге Python 2.x (в надежде установить его снова для Python 2.x), это показывает, что «Требование уже выполнено». В интерпретаторе Python 2.x я проверил, существует ли оболочка lxml:

C:> python
>>> import lxml

и вернулся без ошибок, то есть его там. Однако это не то, что говорит Inkscape (Inkscape по-прежнему говорит, что у меня нет оболочки lxml, даже если я ссылаюсь на каталог Python 2.x). Затем я попытался скопировать две папки для lxml-оболочки из моего каталога Python 3.x и вставить их в мой каталог Python 2.x, но все равно не повезло.

Итак, я вернулся к ссылке Inkscape, приведенной в сообщении об ошибке, и загрузил файл .whl, подходящий для версии Python 2.x, а затем установил pip "lxml-4.3.4-cp27-cp27m-win32.whl "(установить файл pip).Тем не менее, командная строка возвращает с этой ошибкой:

 Requirement 'lxml-4.3.4-cp27-cp27m-win32.whl' looks like a filename, but the file does not exist
lxml-4.3.4-cp27-cp27m-win32.whl is not a supported wheel on this platform.

Теперь у меня остается еще один вариант, который я не уверен, будет ли он работать или нет - удалить Python 3.x и 2.x изатем переустановите только Python 2.x, больше похоже на то, что меня заставили покинуть Python 3.x.

Я знаю, что мой вопрос слишком длинный и трудный, но я рассказал все, что пытался всю ночьне спать ни на секунду.Не могли бы вы попытаться найти решение моей проблемы?Я отчаянно нуждаюсь в помощи, так как есть много других расширений и некоторых функций, которые я бы не смог использовать без этого исправления.Я буду вечно благодарен людям, которые попытаются решить мою проблему ценой своего драгоценного времени.

ОБНОВЛЕНИЕ:

  1. Я удалил python 3.x, установил pip и оболочку lmxl для python 2.x.Все еще не работал.Однако после попыток, предпринятых при попытке 3, если я связываю это с Python Interpreter 2.X, он не показывает сообщение об ошибке.Однако окно «Please Wait» исчезает через 1 секунду после нажатия кнопки «Применить», и ничего не происходит.Так что да, все еще не работает

1 Ответ

0 голосов
/ 29 июня 2019

Удалите Inkscape.

После удаления удалите все файлы, принадлежащие Inkscape, возможно, остались некоторые. Это самая важная часть.

Отменить все изменения в переменных окружения Python. Верните файл настроек в исходное состояние или переименуйте его.

Ошибка, которую вы видите, вероятнее всего из-за того, что вы не следовали инструкциям по обновлению на веб-сайте Inkscape, а выполняли обновление с другого исполняемого типа.

msi нельзя установить поверх exe. EXE не может быть установлен через MSI. Они не заменяют друг друга. Одна старая версия Inkscape не удаляла все файлы Python при запуске программы удаления. Любой из них может быть причиной.

Исправление всегда состоит в том, чтобы полностью удалить Inkscape, а затем переустановить.

Inkscape 0.92.4 поставляется с модулем lxml python для Windows. Не требует установки.

...