【问题标题】:AttributeError: 'str' object has no attribute 'value' | Pynput doesn't allow me to use the mouse and keyboard at the same timeAttributeError: 'str' 对象没有属性 'value' | Pynput 不允许我同时使用鼠标和键盘
【发布时间】:2020-09-29 13:09:26
【问题描述】:

我在使用 Pynput 时遇到问题,每当我同时使用鼠标和键盘功能时,输出都会响应:

AttributeError: 'str' object has no attribute 'value'

我已尝试寻找解决方案,但我找不到任何解决方案。我已经附上了我的脚本,这个错误似乎只有在我同时使用鼠标和键盘功能时才会发生。

from pynput.keyboard import Key, Controller
from pynput.mouse import Button, Controller
mouse = Controller()
keyboard = Controller()

key1 = "s"
key2= "t"
key3 = "o"
key4 = "p"

mouse.position = (-1180, 153)
mouse.click(Button.left, 1)
keyboard.press(key1)
keyboard.release(key1)
keyboard.press(key2)
keyboard.release(key2)
keyboard.press(key3)
keyboard.release(key3)
keyboard.press(key4)
keyboard.release(key4)

谢谢你 - 康纳

【问题讨论】:

  • 您正在从两个不同的模块导入Controller。该名称仅指分配给它的最新值,在本例中为 pynput.mouse.Controller
  • 用别名导入第二个控制器:from pynput.mouse import Button, Controller as MController
  • @Mike67 我已将鼠标变量更改为 MController,但它似乎仍然不起作用。我可能做了一些非常愚蠢的事情。

标签: python pynput


【解决方案1】:

正如 cmets 中所述,您正在导入两个具有相同名称的类。在代码中使用别名来区分它们。

此代码按预期工作:

from pynput.keyboard import Key, Controller
from pynput.mouse import Button, Controller as MController  # alias
mouse = MController()
keyboard = Controller()

key1 = "s"
key2= "t"
key3 = "o"
key4 = "p"

mouse.position = (-1180, 153)
mouse.click(Button.left, 1)
keyboard.press(key1)
keyboard.release(key1)
keyboard.press(key2)
keyboard.release(key2)
keyboard.press(key3)
keyboard.release(key3)
keyboard.press(key4)
keyboard.release(key4)

【讨论】:

    猜你喜欢
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 2018-09-10
    • 2021-10-04
    • 2019-12-02
    相关资源
    最近更新 更多