【发布时间】:2016-01-09 17:51:08
【问题描述】:
一直在寻找使用 pyobjc 的入门,以便在 Windows 上模拟一些等效于 ctypes 的鼠标事件/击键。运行 pyobjc 的全新安装(首先下载 pyobjc-core,然后下载 pyobjc)。以下是我一直在尝试的代码 (source):
from Quartz.CoreGraphics import CGEventCreateMouseEvent
from Quartz.CoreGraphics import CGEventPost
from Quartz.CoreGraphics import kCGEventMouseMoved
from Quartz.CoreGraphics import kCGEventLeftMouseDown
from Quartz.CoreGraphics import kCGEventLeftMouseDown
from Quartz.CoreGraphics import kCGEventLeftMouseUp
from Quartz.CoreGraphics import kCGMouseButtonLeft
from Quartz.CoreGraphics import kCGHIDEventTap
def mouseEvent(type, posx, posy):
theEvent = CGEventCreateMouseEvent(
None,
type,
(posx,posy),
kCGMouseButtonLeft)
CGEventPost(kCGHIDEventTap, theEvent)
def mousemove(posx,posy):
mouseEvent(kCGEventMouseMoved, 845, 396);
def mouseclick(posx,posy):
mouseEvent(kCGEventMouseMoved, 845, 396);
mouseEvent(kCGEventLeftMouseDown, 845, 396);
mouseEvent(kCGEventLeftMouseUp, 845, 396);
最近产生以下错误:
File "/usr/local/lib/python3.5/site-packages/objc/__init__.py", line 15, in _update
import objc._objc as _objc
ImportError: dlopen(/usr/local/lib/python3.5/site-packages/objc/_objc.cpython-35m-darwin.so, 2): Symbol not found: _PyObject_REPR
Referenced from: /usr/local/lib/python3.5/site-packages/objc/_objc.cpython-35m-darwin.so
Expected in: flat namespace
in /usr/local/lib/python3.5/site-packages/objc/_objc.cpython-35m-darwin.so
很明显,问题是 Python3.5 中没有 _PyObject_REPR,因此 init 脚本失败。进入 bitbucket 的“问题”页面后,我找到了this。其中一位用户(Kentzo)修改了 pyobjc github 以删除 _PyObject_REPR 的参与。
我的问题:我该如何正确安装他的修改版本?我尝试了标准的 'pip3 install "link"' 方法,但是我似乎无法将它安装在我现有的 pyobjc 文件上。我是否需要通过 sudo 手动删除所有 pyobjc 文件?
您可能会说我有点菜鸟,所以任何指导将不胜感激!
谢谢!
【问题讨论】:
标签: python python-3.x pyobjc