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

Pyjnius+Sikuli在MacOS实例化Screen类时无响应问题求助

MacOS Monterey下Pyjnius实例化Sikuli Screen类卡顿无响应的解决办法

问题场景

在MacOS Monterey系统中,Python3.9环境已安装Pyjnius、CLASSPATH也添加了SikuliAPI 2.0.5 jar包,运行以下代码时,到实例化Screen类这一步就卡住,无任何报错信息,但相同代码在Windows系统可正常运行:

from jnius import autoclass  # 这步正常执行
Screen = autoclass('org.sikuli.script.Screen')  # 这步也正常
screen = Screen()  # 卡在此处无响应,无报错

解决办法

  • 为Python运行环境开启辅助功能权限
    MacOS的安全机制会限制程序获取屏幕内容,必须给终端或IDE开启对应权限:

    1. 打开「系统偏好设置」→「安全性与隐私」→「隐私」标签页
    2. 找到「辅助功能」选项,点击左下角锁图标解锁设置
    3. 将你用来运行代码的终端(如Terminal、iTerm)或IDE(如PyCharm)添加到列表中,勾选对应权限
    4. 重启终端/IDE后重新运行代码
  • 降级SikuliAPI版本
    SikuliAPI 2.0.5可能与MacOS Monterey存在兼容性问题,尝试降级至2.0.4版本:

    1. 将CLASSPATH中的SikuliAPI 2.0.5 jar包替换为2.0.4版本
    2. 清理Python缓存后重新执行代码
  • 手动指定JVM初始化参数
    给Pyjnius的JVM添加必要参数,确保Sikuli能正常调用系统资源:
    在导入autoclass前先初始化JVM:

    from jnius import init_jvm, autoclass
    # 替换为你实际的SikuliAPI jar包路径
    init_jvm(
        classpath=['/Users/xxx/Documents/sikuliapi-2.0.5.jar'],
        options=['-Xmx512m', '-Djava.awt.headless=false']
    )
    Screen = autoclass('org.sikuli.script.Screen')
    screen = Screen()
    
  • 改用SikuliX官方Python绑定
    放弃Pyjnius,直接使用官方提供的SikuliX Python绑定:

    1. 执行pip install sikulixapi完成安装
    2. 改写代码为:
    from sikulix import Screen
    screen = Screen()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:12:50