只能用IDLE导入win32com.client。我需要做多少工作来设置pywin32?

时间:2014-02-04 05:54:03

标签: python winapi module importerror pywin32

我有一个用于时间管理的Tkinter程序。我决定让它在outlook中扫描我的收件箱以检查电子邮件中的标签,然后根据标签将其添加到我晚上要完成的任务列表中。

我编写的代码工作得很好,但是当我导入win32com.client时出现错误。我可以在IDLE中导入它,但是当我尝试使用.bat文件运行代码或双击.py文件时导入时出现问题。

我找到了几个有类似问题的人,但据我所知,它遇到了win32api模块或pywin32

的问题
Traceback (most recent call last):
    File "my_program_filename.py", line 1, in <module>
import win32com.client
    File "c:/Python27/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.path时,它与IDLE一样,从.py文件运行,但我的.py文件添加了“c:/ users / username / desktop / timer”除外。

我真的迷失了,不必弄乱系统路径,但我无法弄清楚我需要做些什么来解决这个问题。

我需要做些什么才能让pywin32正常工作,这样才能使用win32com.client?

非常感谢任何帮助。谢谢!

4 个答案:

答案 0 :(得分:1)

IIRC,问题是试图链接到调试版本。我想我必须重复发布版本并将其重命名为debug或者其他东西。

尝试构建版本并查看它是否“正常”。如果是这样,你有一个探索的方向

答案 1 :(得分:0)

这是sys.path中没有正确路径的问题。如果你确保所有的pywin32文件夹都在sys.path中(如果你在IDLE中签入,它可以显示文件夹是否包括在内,即使它们不是?!?!?)。

您还必须确保从Python目录中运行代码,否则将无法导入win32api。我还发现,如果你在使用pywin32的函数中做任何事情,并且在调用它时意外拼错了函数,整个导入失败而不告诉你函数拼写错误。您还可以导航到/ Python27 / Lib / site-packages / win32com / client文件夹并运行makepy.py以确保安装了正确的对象库。

运行makepy.py时,选择要使用的COM对象,然后创建特定于您要使用的包。我不完全理解为什么会这样,但是一旦我这样做并从Python文件夹运行我的文件就可以了!关于如何正确使用here,有更深入的解释。

答案 2 :(得分:0)

我发现此链接是解决方案,而不是上面指出的win32com / client:win32com import error python 3.4

答案 3 :(得分:0)

在我的情况下键入cmd: python C:\Python27\Scripts\pywin32_postinstall.py -install

results in command line

我希望这会有所帮助