繁体   English   中英

from lxml import etree ImportError: DLL 加载失败:找不到指定的模块

[英]from lxml import etree ImportError: DLL load failed: The specified module could not be found

我最近安装了一个新的 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 脚本,我经常用我以前的 anaconda 安装(我不知道 python3.5.4 和 python-docx 版本)读取/写入 MsWord.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.

这个问题有解决方案吗? 我不能 go 回到我以前的安装!

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

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

scrapy startproject name_of_project

错误:

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

解决方案:

第一步:pip卸载lxml

第 2 步:pip 安装 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 ...

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

  1. ERROR: 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/

所以在构建 lxml.etree 时可能会出现问题,因为正确的 Visual C++ 编译器不可用。 This appears to be confirmed in an article of Michael Hirsch dated 21 September, 2019 titled “Fix Python 3 on Windows error: Microsoft Visual C++ 14.0 is required” , see https://www.scivision.dev/python-windows-visual- c-14-需要/

根据他的建议,我使用离线安装程序安装了 Microsoft Visual C++ 14.0:vs_buildtools.exe Select:工作负载 → C++ 构建工具。 安装选项:select 只有“Windows 10 SDK”(假设电脑是 Windows 10)。 要从命令行使用 MSVC cl.exe C / C++ 编译器,另外还有 select ZF6F877C9FDCF8EEB3713 工具。

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

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

> 使用 lxml.etree 运行!

最简单的解决方案是(上面已经提供): 第 1 步:pip 卸载 lxml 第 2 步:pip 安装 lxml

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM