win32com 导入错误 Python 3.4

12 投票
3 回答
41656 浏览
提问于 2025-04-17 22:52

我刚刚安装了64位的Python 3.4,并尝试安装win32com。我下载了pywin32-218.win-amd64-py3.4.exe,并顺利运行了它。用pip freeze命令查看,显示pywin32==218。但是,当我尝试导入win32com.client时,出现了以下错误:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import win32com.client
  File "C:\program files\Python34\lib\site-packages\win32com\__init__.py", line 5, in <module>
    import win32api, sys, os
ImportError: DLL load failed: The specified module could not be found.

sys和os可以正常导入,但导入win32api时就出问题了。

用同样的方法在Python 2.7.6和Python 3.3.4上都能正常工作。

我该怎么解决这个问题呢?

3 个回答

1

我在Windows 7上也运行着64位的Python 3.4,遇到了同样的问题。

我按照这个Stack Overflow的回答解决了这个问题。简单来说,我把存放pywintypes34.dll的路径添加到了我的系统路径中,然后就好了。

在我的情况下,那个路径是C:\Python34\Lib\site-packages\pywin32_system32。这个路径下必须有两个DLL文件:“pythoncom34.dll”和“pywintypes34.dll”。

8

我把 pywintypes26.dllpythoncom26.dll 这两个文件复制到 c:\Python26\Lib\site-packages\win32 这个文件夹里,问题就解决了!

引用自 这里

30

在Python 3.3中,这个方法可以直接使用,不需要复制DLL文件。

为什么在2.6版本中就需要复制这些文件呢?这不是应该早就解决了吗!

经过一些额外的研究,我发现其实只要以管理员身份运行安装后的脚本就可以了。

python C:\Python34\Scripts\pywin32_postinstall.py -install

看起来安装脚本没有正确执行这个步骤。

撰写回答