我找不到任何有关如何使用 pynput 修复此导入错误的信息。重新安装了 pynput,做了一个简单的测试,尝试了不同的按键来按下/释放,但都出现相同的错误。
错误消息:
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)
不返回错误:
$ Python
>>> import pynput
并从 IDLE 中键入脚本会返回相同的错误。
版本:
python 3.7.4
点19.3.1
conda 4.8.0(迷你conda)
pynput 1.6.1
Windows 8.1
测试.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
这对我有用,希望有帮助:)
关于python - 导入错误: cannot import name '_NORMALIZED_MODIFIERS' from pynput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59507268/