You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么pynput.mouse.Controller的导入方式会影响程序正常运行?

为什么两种pynput导入写法效果不同

核心原因是Python中import和from ... import ...两种语法的适用规则不一样,同时和pynput库的内部结构有关:

  • Python的import关键字后只能跟包(package)或者模块(module),不能直接跟模块内定义的类、函数、变量等成员
  • 而from 包/模块 import ...的写法中,import后面既可以跟子包、子模块,也可以跟对应模块内的任意成员

你用到的Controller是pynput.mouse模块内部定义的类,本身不是独立的模块/包:

  1. from pynput.mouse import Controller写法完全符合规则:从pynput.mouse模块中导入它的成员类Controller,所以可以正常运行
  2. import pynput.mouse.Controller写法是要求Python导入名为pynput.mouse.Controller的模块,但这个路径对应的是类不是模块,自然找不到对应模块,就会抛出ModuleNotFoundError: No module named 'pynput.mouse.Controller'错误

如果你不想用from ... import的写法,也可以按如下方式导入使用:

import pynput.mouse

# 调用时写全路径即可
mouse_controller = pynput.mouse.Controller()

内容的提问来源于stack exchange,提问作者Geneku2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 11:27:07