找不到符号:调用pyobjc函数Python3.5.1时,找不到符号

2024-04-29 02:18:16 发布

您现在位置:Python中文网/ 问答频道 /正文

一直在寻找使用pyobjc来模拟相当于windows上ctypes的鼠标事件/击键。运行pyobjc的全新安装(首先下载pyobjc核心,然后下载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);

这将产生以下最新错误:

^{pr2}$

很明显,问题是Python3.5中没有_PyObject_REPR,因此init脚本失败。在bitbucket的“问题”页面上,我找到了this。其中一个用户(Kentzo)修改了pyobjc github,删除了_PyObject_REPR的参与。在

我的问题是:如何正确安装他的修正版?我尝试过标准的'pip3 install“link”'方法,但是我似乎无法在现有的pyobjc文件上安装它。我需要通过sudo手动删除所有pyobjc文件吗?在

你可能会觉得我有点傻,所以任何指导都将不胜感激!在

谢谢!在


Tags: fromimportdefpyobjccoregraphicsquartzposxposy
1条回答
网友
1楼 · 发布于 2024-04-29 02:18:16

要安装工作版本,您需要下载正确的pyobjc版本(Kentzo),在终端或命令行中导航到下载的文件夹,然后运行“python3”设置.py安装“从终端(Mac)或”设置.py从命令行(Windows)安装。这个设置.py文件会帮你处理一切。在

在这里下载Kentzo的版本,然后打开它:https://github.com/GreatFruitOmsk/pyobjc-core/releases/download/v3.0.5.dev0/pyobjc-core-3.0.5.tar.gz。在

打开下载的文件夹后,请按照本页Distutils部分下的说明操作:https://docs.python.org/2/install/#the-new-standard-distutils。在

我不知道已经有了旧的pyobjc版本是否会带来麻烦,但是请继续卸载以前的pyobjc版本(像往常一样卸载pip3),然后开始上面的步骤。在

相关问题 更多 >