我刚刚在 Windows 7 64b 和 InkScape 0.92.2 中遇到了“这个”错误,我想给出一个稍微健谈的答案,以阐明这种“奇妙”现象的背景。请注意,错误消息的“技术细节”似乎对于不同的人来说是不同的 = 它们可能是由于不同人的 Windows 系统映像中出现的不同配置错误或 Inkscape 安装程序中可能出现的不同故障而导致的各种潜在问题的主机适用于 Windows 的软件包(各种历史版本)。
首先:请注意,Inkscape 中的一些“外围”内容是作为 Python 脚本或模块实现的 - 例如文件导入和导出(至少某些格式,我的是 DXF),也许还有内置帮助。这意味着 Inkscape 的这些功能需要 Python 运行时引擎才能工作。
Python 是一种流行的解释语言,在安装 Inkscape 时,您的 PC 上可能已经安装了 Python(某些版本)。
无论您的 PC 上是否已经安装了 Python,Inkscape 安装程序都会提供将 Python 与 Inkscape(安装程序中的一个选项)一起安装的功能。 EXE 安装程序确实包含一个复选标记,但不确定 MSI 安装程序变体(我似乎记得 MSI 安装程序变体中的可选选项集并不丰富)。
问题是:这个由 Inkscape 安装的 Python 运行时并不是在系统范围内安装的。相反,它位于 C:\Program Files\Inkscape 中。甚至还有一个 python.exe。
作为比较:标准系统范围的 Python 默认位于 C:\Python27\ 中。
为了解决“奇妙”综合症,一些人建议将 PYTHONPATH 环境变量(如果需要的话设置为系统范围)设置为指向 Inkscape 自己的 Python 库文件夹。就我而言,这对 Inkscape 没有影响,缺少 lxml 的问题仍然存在。同时,它破坏了我的系统范围的 python 实例 - 猜猜为什么:-)
我很快意识到,就我而言,“Inkscape 自己的”Python 可能缺少 lxml 库。因此,我设置了 PYTHONPATH,启动了具有管理员权限的 CMD,将其 CD 放入 \Program Files\Inkscape,下载了 get-pip.py 的副本并在 Inkscape Python 环境中运行它。这没有成功安装 pip (IMO 是“pip install lxml”之前的要求)。我不记得确切的错误消息,但它只是没有成功。
接下来,我发现另一种出路是avoid在 Inkscape 安装程序中安装 Python,并依赖系统范围的 Python。我曾经有一些预先存在的 Python 2.7.x,但在我寻找“奇妙综合症”时设法将其卸载。因此,我也卸载了 Inkscape,删除了我自己的 PYTHONPATH 定义,并重新安装了 Python 和 Inkscape。我首先从上游/官方下载站点下载了 Python 2.7.13,我希望 PIP 与 Python 一起安装,一旦 Python 在 C:\Python27 中一切顺利,我运行“pip install lxml”(以及其他几个库,例如我需要 RTL-SDR 扫描仪的 NumPy)。之后,我使用 EXE 安装程序安装了 Inkscape,并确保在 Inkscape 安装程序中未检查 Inkscape 自己的 Python 是否安装。
你瞧,问题消失了。 Inkscape 调用系统范围的 Python 解释器来运行其文件导出脚本。大家都很高兴。
除了 PYTHONPATH 之外,还要注意 PYTHONHOME 环境变量中的自定义路径(可能是您过去使用 Python 进行实验时留下的)。
有一种方法可以测试 lxml 是否安装:
C:> python
>>> import lxml
>>> lxml
<module 'lxml' from 'C:\Python27\lib\site-packages\lxml\__init__.pyc'>
>>> quit()
也可以看看这个话题 https://stackoverflow.com/questions/20611504/find-python-lxml-version显示已安装的 lxml 版本。