开发者问题收集

从 lxml 导入 etree ImportError: DLL 加载失败: 找不到指定的模块

2019-10-24
11514

我最近安装了全新的 Anaconda 版本 2019-10,它使用 python 3.7.4。 为了能够从 Python 中读取/写入 MsWord .docx 文件,我使用了库模块 python-docx, 我使用以下命令安装它: conda install -c conda-forge python-docx 安装的是 python-docx 0.8.10。 现在我经常使用一个 python 脚本来读取/写入 MsWord .docx 文件,我使用的是我之前的 anaconda 安装(python3.5.4 和 python-docx 版本我不知道)。

脚本:(缩写)


    import docx
    doc = docx.Document('demo.docx') # demo.docx exists in same dir
    print(len(doc.paragraphs))

突然抛出一个错误:

回溯(最近一次调用最后一次):

  File "D:\pa\Python\ProjectsWorkspace\Py001Proj\src\printenfrompython\wordprinten.py", line 19, in <module>
    import docx
  File "C:\Users\pa\Anaconda3\lib\site-packages\docx\__init__.py", line 3, in <module>
    from docx.api import Document  # noqa
  File "C:\Users\pa\Anaconda3\lib\site-packages\docx\api.py", line 14, in <module>
    from docx.package import Package
  File "C:\Users\pa\Anaconda3\lib\site-packages\docx\package.py", line 9, in <module>
    from docx.opc.package import OpcPackage
  File "C:\Users\pa\Anaconda3\lib\site-packages\docx\opc\package.py", line 9, in <module>
    from docx.opc.part import PartFactory
  File "C:\Users\pa\Anaconda3\lib\site-packages\docx\opc\part.py", line 12, in <module>
    from .oxml import serialize_part_xml
  File "C:\Users\pa\Anaconda3\lib\site-packages\docx\opc\oxml.py", line 12, in <module>
    from lxml import etree
ImportError: DLL load failed: The specified module could not be found.

这个问题有解决办法吗? 我无法回到之前的安装!

今天我在我的普通 python3.7.5 安装中使用 'pip install python-docx` 安装了 python-docx 现在上述错误不再发生。 重新安装 Anaconda 并使用 pip 在 anaconda 中重新安装 python-docx,出现与上述相同的错误。我的操作系统是 windows10。我在两种情况下都使用 Eclipse\PyDev 运行测试,并在 PyDev 中在 python3.7.5 和 anaconda python3.7.4 解释器之间切换。

3个回答

conda 版本:4.9.2(已安装在系统中) 尝试运行:

scrapy startproject name_of_project

错误:

ImportError: DLL load failed while importing etree: The specified module could not be found.

解决方案:

步骤 1:pip uninstall lxml

步骤 2:pip install lxml

错误已解决

New Scrapy project 'tutorial', using template directory 'C:\Users\New\miniconda3\lib\site-packages\scrapy\templates\project', created in:
    C:\Users\New\Documents\TOUR_TOC++\web_scraping\NSE\tutorial
    You can start your first spider with:
         cd tutorial
         scrapy genspider example example.com ...
ujjwal_bansal
2020-11-24

已解决! 。 在尝试重新安装 lxml==4.1.1 包时,错误日志报告了许多错误,其中包含解决方案的提示。

  1. 错误:b“'xslt-config' 未被识别为内部或外部命令,\r\n 不可操作的程序或批处理文件。\r\n” ** 确保安装了 libxml2 和 libxslt 的开发包 **
  2. 构建“lxml.etree”扩展:。 错误:需要 Microsoft Visual C++ 14.0。使用“Microsoft Visual C++ 构建工具”获取它: https://visualstudio.microsoft.com/downloads/

因此,由于没有正确的 Visual C++ 编译器,构建 lxml.etree 可能会出现问题。这似乎在 Michael Hirsch 于 2019 年 9 月 21 日发表的一篇题​​为 “修复 Windows 上的 Python 3 错误:需要 Microsoft Visual C++ 14.0” 的文章中得到了证实,请参阅 https://www.scivision.dev/python-windows-visual-c-14-required/

根据他的建议,我使用离线安装程序安装了 Microsoft Visual C++ 14.0:vs_buildtools.exe 选择:工作负载 → C++ 构建工具。安装选项:仅选择“Windows 10 SDK”(假设计算机是 Windows 10)。要从命令行使用 MSVC cl.exe C / C++ 编译器,还需要选择 C++ 构建工具。

然后我安装了 libxml2 和 lxml,解决了这个问题:

try:
  from lxml import etree
  print("running with lxml.etree !")
except ImportError:
  print("Import etree from lxml failed !"

> running with lxml.etree!

Blackbull
2019-10-25

最简单的解决方案是(上面已经提供): 步骤 1:pip uninstall lxml 步骤 2:pip install lxml

但是,在通过 lxml-4.6.3.tar.gz 重新安装 lxml 时,我遇到了问题。因此,我尝试通过相应的 .whl 文件重新安装并成功了!

yusuf imran
2021-05-16