Import error: cannot import name '_NORMALIZED_MODIFIERS' from pynput

Import error: cannot import name '_NORMALIZED_MODIFIERS' from pynput

我找不到任何关于如何使用 pynput 修复此导入错误的信息。重新安装了 pynput,做了一个简单的测试,尝试了 press/release 的不同键和所有相同的错误。

错误消息:

PS C:\Users\username\Desktop\Python Voice Cmd Input> python -m test
Traceback (most recent call last):
  File "C:\ProgramData\Miniconda3\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\ProgramData\Miniconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\username\Desktop\Python Voice Cmd Input\test.py", line 6, in <module>
    keyboard.press(Key.space)
  File "C:\ProgramData\Miniconda3\lib\site-packages\pynput\keyboard\_base.py", line 363, in press
    self._update_modifiers(resolved, True)
  File "C:\ProgramData\Miniconda3\lib\site-packages\pynput\keyboard\_base.py", line 574, in _update_modifiers
    if self._as_modifier(key):
  File "C:\ProgramData\Miniconda3\lib\site-packages\pynput\keyboard\_base.py", line 595, in _as_modifier
    from .. import _NORMALIZED_MODIFIERS
ImportError: cannot import name '_NORMALIZED_MODIFIERS' from 'pynput' (C:\ProgramData\Miniconda3\lib\site-packages\pynpu
t\__init__.py)

不return错误:

$ Python
>>> import pynput   

和从 IDLE 中键入脚本 return 相同的错误。

版本:
python3.7.4
点 19.3.1
conda 4.8.0 (miniconda)
1.6.1
Windows8.1

test.py

#!/usr/bin/env python3
from pynput.keyboard import Key, Controller

keyboard = Controller()

keyboard.press(Key.space)
keyboard.release(Key.space)

这是 pynput 1.6.1 版本中的一个错误。 你可以重新安装一个更新的版本 要么 在 \pynput\keyboard\ 中的文件 '_base' 中,它尝试执行:

from .. import _NORMALIZED_MODIFIERS

你需要做的就是改变它:

from . import _NORMAL_MODIFIERS

这对我有用,希望对您有所帮助:)