【问题标题】:ImportError with python-pptx使用 python-pptx 的 ImportError
【发布时间】:2019-03-17 19:11:55
【问题描述】:

当我在干净的环境中安装带有 conda 的 python-pptx 时遇到了问题: conda install -c conda-forge python-pptx。安装成功后,我尝试导入 pptx 模块并收到以下错误:

>>> import pptx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\SazonovEO\AppData\Local\Continuum\anaconda3\envs\new\lib\site-p
ackages\pptx\__init__.py", line 13, in <module>
    from pptx.api import Presentation  # noqa
  File "C:\Users\SazonovEO\AppData\Local\Continuum\anaconda3\envs\new\lib\site-p
ackages\pptx\api.py", line 17, in <module>
    from .package import Package
  File "C:\Users\SazonovEO\AppData\Local\Continuum\anaconda3\envs\new\lib\site-p
ackages\pptx\package.py", line 13, in <module>
    from .opc.package import OpcPackage
  File "C:\Users\SazonovEO\AppData\Local\Continuum\anaconda3\envs\new\lib\site-p
ackages\pptx\opc\package.py", line 13, in <module>
    from .oxml import CT_Relationships, serialize_part_xml
  File "C:\Users\SazonovEO\AppData\Local\Continuum\anaconda3\envs\new\lib\site-p
ackages\pptx\opc\oxml.py", line 12, in <module>
    from lxml import etree
ImportError: DLL load failed: Не найден указанный модуль.

但是如果我用这样的 pip 安装这个库(python-pptx)(也安装到新的清理环境中):

pip install python-pptx

这行得通。 我有以下版本:python 版本 - 3.7.1、python-pptx-0.6.17、lxml-4.3.0。

你对这个问题有什么想法吗?

【问题讨论】:

  • 奇怪,你说你有lxml,它在python-pptx配方中作为要求,但Python说它找不到它。你能在那个环境中import lxml 还是那也失败了?如果您在 Python 中检查 sys.pathlxml 是否在这些目录之一中?
  • lxmllib2xmllibxslt 的 Python 包装器。我相信这些是 Windows 中的 DLL,这可能意味着由于某种原因(可能与 PATH 相关),lxml 在 anaconda 环境中无法找到它们。错误消息显示“DLL 加载失败”而不是“没有名为 lxml 的模块”这一事实表明,找到 lxml 模块并不是最直接的问题。可能值得尝试conda install lxml 或任何用于在 anaconda 中重新安装 lxml 的命令,以查看是否可以拾取底层 C 库。这也可能有帮助:github.com/sci-bots/microdrop/issues/246

标签: anaconda lxml conda python-pptx


【解决方案1】:

从 anaconda repo 的 pkgs/主通道重新安装 lxml 允许解决问题:

conda install lxml

以下软件包将被更新:

libxml2 conda-forge::libxml2-2.9.8-h9ce36c8_1~ --> pkgs/main::libxm l2-2.9.9-h464c3ec_0 libxslt
conda-forge::libxslt-1.1.32-heafd4d3_~ --> pkgs/main::libxs lt-1.1.33-h579f668_0

以下包将被更高优先级的包所取代 频道:... lxml
conda-forge::lxml-4.3.2-py37heafd4d3_0 --> pkgs/main::lxml- 4.3.2-py37h1350720_0 ...

【讨论】:

  • 感谢@Scanny 的上述评论
【解决方案2】:

首先,在终端中尝试以下命令以启用 conda-forge:

conda config --add channels conda-forge

其次,运行以下命令,过一会输入[y]:

conda install python-pptx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2016-12-20
    • 1970-01-01
    相关资源
    最近更新 更多