“未定义 'win32api'” - 错误但包已存在?

1 投票
1 回答
7021 浏览
提问于 2025-04-18 14:37

我在我的Win7(64位电脑)上通过 pip install pywin32 安装了win32api。

然后我可以用下面的方式导入这个包:

from win32api import keybd_event, SetCursorPos, mouse_event

但是当我在我的代码中使用它时:

def press(*args):
    '''
    one press, one release.
    accepts as many arguments as you want. e.g. press('left_arrow', 'a','b').
    '''
    for i in args:
        win32api.keybd_event(VK_CODE[i], 0,0,0)
        time.sleep(.05)
        win32api.keybd_event(VK_CODE[i],0 ,win32con.KEYEVENTF_KEYUP ,0)

我收到了下面显示的错误。有没有人能告诉我可能出什么问题了,或者我该如何找到问题的根源。

>>> ================================ RESTART ================================
>>> 
Traceback (most recent call last):
  File "C:\Users\bartis\Desktop\Python\Point\sendKeys.py", line 164, in <module>
    press('backspace')
  File "C:\Users\bartis\Desktop\Python\Point\sendKeys.py", line 121, in press
    win32api.keybd_event(VK_CODE[i], 0,0,0)
NameError: name 'win32api' is not defined

1 个回答

2

你用的 from 语句只会导入 import 关键字后面列出的那些名字。它并不会导入 win32api 这个名字本身。你要么加一句 import win32api,要么把 win32api.keybd_event 改成只写 keybd_event

撰写回答