【问题标题】:libxml not recognized in windows 10 inkscape 0.92在 Windows 10 inkscape 0.92 中无法识别 libxml
【发布时间】:2017-01-20 20:09:06
【问题描述】:

Inkscape 抱怨没有 libxml,所以我为 windows 10 安装了 lxml。它在修改路径 -> 抖动节点期间再次抱怨。所以我重新启动了 Inkscape。它仍在抱怨。有谁知道如何解决这个问题? 提前致谢

错误: inkex.py 需要用于 libxml2 的奇妙 lxml 包装器,因此需要此扩展程序。请从 http://cheeseshop.python.org/pypi/lxml/ 下载并安装最新版本,或通过您的包管理器通过如下命令安装它:sudo apt-get install python-lxml

技术细节: DLL 加载失败:%1 不是有效的 Win32 应用程序。

【问题讨论】:

    标签: inkscape


    【解决方案1】:

    我刚刚在 Windows 7 64b 和 InkScape 0.92.2 中遇到了“这个”错误,我想给出一个简短的回答,以阐明这个“奇妙”现象的背景。请注意,错误消息的“技术细节”似乎因不同的人而异 = 它们可能是由不同人的 Windows 系统映像中出现的不同错误配置或 Inkscape 安装程序中可能出现的不同故障导致的各种潜在问题的主机适用于 Windows 的软件包(各种历史版本)。

    首先:请注意,Inkscape 中的一些“外围”内容是作为 Python 脚本或模块实现的 - 例如文件导入和导出(至少某些格式,我的是 DXF),也许还有内置帮助。这意味着 Inkscape 的这些功能需要 Python 运行时引擎才能工作。

    Python 是一种流行的解释型语言,在您安装 Inkscape 时,您可能会在 PC 上预先安装 Python(某些版本)的系统范围内安装。

    无论您的 PC 上是否已经安装了 Python,Inkscape 安装程序都会提供与 Inkscape 一起安装的 Python(安装程序中的一个选项)。 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”之前的要求)。我不记得确切的错误信息,但它只是没有解决。

    接下来,我发现另一种方法是避免在 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 自己的 Python 没有在 Inkscape 安装程序中检查安装。

    瞧,问题消失了。 Inkscape 调用系统范围的 Python 解释器来运行其文件导出脚本。大家都很开心。

    除了 PYTHONPATH,请注意 PYTHONHOME 环境变量中的自定义路径(可能是您过去使用 Python 的实验遗留下来的)。

    有一种方法可以测试是否安装了lxml:

    C:> python
    >>> import lxml
    >>> lxml
    <module 'lxml' from 'C:\Python27\lib\site-packages\lxml\__init__.pyc'>
    >>> quit()
    

    另请参阅this topic 以显示已安装的 lxml 版本。

    【讨论】:

    • 像魅力一样工作;我面临的唯一问题是我的系统中还安装了 Python35,所以我必须在调用 pip 并声明使用 Inkscape 之前将路径更改为 Python27
    【解决方案2】:

    TL;DR 卸载所有版本的 Inkscape 并重新安装 0.92 为我解决了这个问题。

    详细: Windows 10,与版本 0.92 相同的问题。每当我使用 Generate From Path 功能时,都会抛出 python 错误。

    我有一个更简单的案例,其中 Python 尚未安装,但 Inkscape 0.91 已安装。显然,安装新版本并没有卸载旧版本,所以我的机器安装了 0.91 和 0.92。

    所以我卸载了这两个版本,保留了我的用户偏好,重新安装了 0.92。

    之后一切都很顺利。

    【讨论】:

      【解决方案3】:

      我升级到 Inkscape 0.92 后仍然出现错误。 在我的环境变量中取消设置 PYTHONPATH 后,它就可以正常工作了。

      【讨论】:

        【解决方案4】:

        在我的例子中,我在安装inkscape时已经在我的计算机上安装了python,所以我在安装过程中取消了它的选项。我想正因为如此,它无法检查依赖项。因此,我从具有管理权限的命令行手动安装了 lxml:

        pip install lxml
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-19
          • 1970-01-01
          • 1970-01-01
          • 2021-01-11
          相关资源
          最近更新 更多