【问题标题】:Mouse, and keyboard python modules conflicting?鼠标和键盘python模块冲突?
【发布时间】:2021-09-26 05:18:15
【问题描述】:

我正在编写一个包含鼠标和键盘模块的测试程序,但是当我运行程序时它们会发生冲突。

如果适用,我会运行 Linux Mint 20.04 (Uma)。

这是我的代码:

import keyboard
import mouse
import time

time.sleep(2)
print("Finished part 1!")

x, y = mouse.get_position()

time.sleep(2)
print("Finished part 2!")

mouse.move(x, y)

time.sleep(2)
print("Finished part 3!")

keyboard.add_hotkey('ctrl+alt+c', mouse.move(x, y))

如果我正常运行这个程序,比如在我的终端中运行/bin/python3 /home/bhrz/Scripts/Python/Mouse/main.py,它会输出:

Finished part 1!
Finished part 2!
Finished part 3!
Traceback (most recent call last):
  File "/home/bhrz/Scripts/Python/Mouse/main.py", line 18, in <module>
    keyboard.add_hotkey('ctrl+alt+c', mouse.move(x, y))
  File "/usr/local/lib/python3.8/dist-packages/keyboard/__init__.py", line 639, in add_hotkey
    _listener.start_if_necessary()
  File "/usr/local/lib/python3.8/dist-packages/keyboard/_generic.py", line 35, in start_if_necessary
    self.init()
  File "/usr/local/lib/python3.8/dist-packages/keyboard/__init__.py", line 196, in init
    _os_keyboard.init()
  File "/usr/local/lib/python3.8/dist-packages/keyboard/_nixkeyboard.py", line 113, in init
    build_device()
  File "/usr/local/lib/python3.8/dist-packages/keyboard/_nixkeyboard.py", line 109, in build_device
    ensure_root()
  File "/usr/local/lib/python3.8/dist-packages/keyboard/_nixcommon.py", line 174, in ensure_root
    raise ImportError('You must be root to use this library on linux.')
ImportError: You must be root to use this library on linux.

当我尝试通过输入 sudo /bin/python3 /home/bhrz/Scripts/Python/Mouse/main.py 来解决该错误时,它会输出:

Traceback (most recent call last):
  File "/home/bhrz/Scripts/Python/Mouse/main.py", line 2, in <module>
    import mouse
ModuleNotFoundError: No module named 'mouse'

我一直在寻找答案,有些人会执行上述操作,如您所见,这导致了失败,另一个人说要执行 sudo su 然后运行脚本——这也失败了,输出与以上。

请帮我找出问题所在。

我无意中安装了 3 个版本的 python:2.7、3.8.10 和 3.9.5。我个人安装了 Python 3.9.5。我不使用 2.7,但它是使用 python-dev 安装的

在 Python 3.9.5 上,键盘模块无法识别,但在 Python 3.8.10 上却可以。

【问题讨论】:

    标签: python python-3.x linux


    【解决方案1】:

    我找到了问题的答案。线程:Python can't find module when started with sudo 的第二个答案解决了我的问题。 不要运行sudo python3(/3.8) myScriptName.py,而是运行sudo -E python3(/3.8) myScriptName.py

    谢谢你,尼玛试图帮助我!

    【讨论】:

      【解决方案2】:

      如你所说,使用sudo /bin/python3.8 /home/bhrz/Scripts/Python/Mouse/main.py

      在 Python 3.9.5 上,键盘模块无法识别,但在 Python 3.8.10 上却可以。

      python3 已在您安装 python3.9.5 时被替换。所以它属于python 3.9.5。您需要使用python3.8 在python 3.8.10 环境中执行您的脚本。

      【讨论】:

      • 使用该命令会输出相同的错误消息,Traceback (most recent call last): File "/home/bhrz/Scripts/Python/Mouse/main.py", line 2, in &lt;module&gt; import mouse ModuleNotFoundError: No module named 'mouse'。鼠标和键盘库都安装在 python3.8 下。具体来说,/usr/local/lib/python3.8/dist-packages.
      • 尝试在python3.9.5上安装鼠标和键盘。 pip3.9 install ...。然后使用python3.9 运行您的脚本
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多