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

在Google Colab中使用pynput模块遇导入错误的解决方法咨询

问题原因

Google Colab是云端的无图形界面服务器环境,pynput是用来监听、控制本地物理键盘/鼠标的库,它依赖X11图形会话(需要正确设置DISPLAY环境变量),但Colab的运行环境既没有本地输入设备,也没配置X11,所以直接导入必然报错。

可行解决办法

根据你的实际需求,分两种场景处理:

场景1:只是要获取用户输入内容

如果不需要监听系统键盘,只是想拿到用户输入,直接用Colab自带的input()函数就行,完全不用pynput:

user_input = input("请输入内容: ")
print("你输入的内容是:", user_input)

场景2:要模拟键盘操作(比如网页自动化)

如果是想在Colab里模拟键盘操作(比如操控网页),可以用selenium替代pynput,步骤如下:

  1. 先安装依赖:
!pip install selenium
!apt-get update
!apt install chromium-chromedriver
  1. 编写模拟键盘输入的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options

# 配置Chrome无头模式(适配Colab无图形环境)
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

# 初始化浏览器驱动
driver = webdriver.Chrome(options=chrome_options)

# 打开谷歌搜索页,模拟输入和回车
driver.get("https://www.google.com")
search_box = driver.find_element("name", "q")
search_box.send_keys("Colab selenium 键盘模拟")
search_box.send_keys(Keys.ENTER)

# 打印页面标题
print(driver.title)

# 关闭浏览器
driver.quit()

补充:如果要监听本地键盘

Colab是云端环境,根本访问不到你的本地键盘,这种需求只能在自己电脑的本地Python环境里实现,本地的安装和使用代码如下:

# 本地终端执行安装
pip install pynput
# 本地监听键盘的示例代码
from pynput.keyboard import Key, Listener

def on_press(key):
    try:
        print(f'按下普通键: {key.char}')
    except AttributeError:
        print(f'按下特殊键: {key}')

def on_release(key):
    print(f'释放键: {key}')
    if key == Key.esc:
        # 按ESC键停止监听
        return False

# 启动监听
with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:30:57