Windows 10 inkscape 0.92 中无法识别 libxml

2023-12-22

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

错误: inkex.py 需要 libxml2 的出色 lxml 包装器,因此需要此扩展。请从以下地址下载并安装最新版本http://cheeseshop.python.org/pypi/lxml/ http://cheeseshop.python.org/pypi/lxml/,或者通过包管理器使用以下命令安装它: sudo apt-get install python-lxml

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


我刚刚在 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 版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 10 inkscape 0.92 中无法识别 libxml 的相关文章

  • 告诉 Ctags 不要解析评论中的内容

    当我生成 ctags 文件时 它似乎也在解析注释中的内容 例如 使用 Vim 的插件 Tagbar 我可以在函数列表中看到不存在的函数 例如 is in just 这里发生的情况是 ctags 正在进入评论并发现以下内容 This func
  • 如何使用 CSS 使某个区域不可点击?

    假设我有包含一些链接和图像的包装 div 有什么方法可以仅使用 CSS 立即停用它吗 审查答案后 我放弃了只用 CSS 就能实现的想法 jQuery blockUI 插件就像魅力一样 有一个 CSS 规则 pointer events no
  • Laravel:如何从查询结果中获取模型?

    假设我有一个查询 除其他外 返回用户 ID 该查询是使用DB table 而不是使用模型 因此 我得到了一个集合 其中包含每个检索到的行的数组 如下所示 user id calculated data 1 123 2 111 3 222 假
  • 防止 lxml 在 ` 中转义 & 符号 ` 写入文件时

    我需要向现有 XML 元素添加一个属性 该属性必须包含 实体内的字符 例如 x0d 将修改后的 XML 写入文件时 变成 amp 从而摧毁该实体 import lxml etree as et e et Element a e set at
  • 基于公共密钥分析数据的简单方法

    处理映射到特定键的所有记录并输出该数据的多个记录的最简单方法是什么 例如 综合示例 假设我的密钥是日期 值是带有测量温度的当天时间戳 我想将一天内的温度分为高 平均 低 同样 低于 高于平均值 1 个标准偏差 输出将是具有新分类的原始温度
  • 在 Android 中创建和处理应用程序超时

    我想知道处理应用程序超时的最佳方法是什么 例如 PayPal 我希望用户选择 1 5 或 15 分钟的超时时间 这样当他们打开应用程序时 他们必须再次登录 我的 onResume 方法 Override public void onResu
  • 按 15 分钟间隔对数据集进行分组

    我正在尝试为我们的内部公司系统建立平均会话量 问题是范围大约向后三个月 我想按 15 分钟间隔对这整组大数据进行分组 因此输出将如下所示 interval sess avg 12 00 12 15 300 12 15 12 30 350 e
  • FromBody 值获取 null

    这是 Asp Net Webform 应用程序这是我的 Apicontroller 中的 POST 方法 public void Post FromBody string value 我正在使用 fiddler 后期处理 我就是这么实验的

随机推荐