问题标签 [pyobjc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4418 浏览

python - 如何在 Mac 上安装 GASP for Python 2.6.2

我目前正在尝试学习 Python,并且正在学习如何像计算机科学家一样思考:学习 Python。我已经在 Mac OSX 10.4.11 上安装了 Python 2.6.2 并且正在使用 IDLE。

在第 4 章结尾处 Elkner 等人。参考 GASP。但是,当我输入时,他们的说明不起作用:

我得到:

我在谷歌上环顾四周,只能找到过时的安装方法或 gobbledegook 页面。我相信我必须先安装 PyObjC 并且也无法完成此操作。

任何人都可以帮我一些简单的英文说明吗?

0 投票
9 回答
5706 浏览

python - 纯python gui库?

Python 有很多 GUI 库:tkinter、wxWidgets、pyGTK 等。但是所有这些 GUI 都需要安装并且非常重量级,因此部署依赖于上述 GUI 库的最终用户 GUI Python 应用程序有点复杂。

最近在想python的内置ctypes模块。从理论上讲,可以创建一个纯 python GUI 库,用于ctypesWindows(windll.user32.CreateWindowEx等)、MacOS 上的本机 pyObjC 和 gnome / kde 上的 pyGTK / pyQt。有这样的图书馆吗?如果不是,您认为这个想法有什么问题?

0 投票
3 回答
946 浏览

objective-c - 活动监视器中的 Cocoa 分布式对象、长轮询、launchd 和“无响应”

设想:

我在 mac 应用程序和 launchd 守护程序(用 Foundation 类编写)之间有一个基于分布式对象的 IPC。由于我之前遇到过关于异步消息传递的问题(例如,我有一个 registerClient: 在服务器的根对象上,并且每当发生事件时服务器的根对象通知/调用客户端代理对象中的方法),我进行了长轮询,这意味着客户端“收获”来自守护进程的事件/通知列表。这种“收获”是通过服务器对象方法调用完成的,然后返回一个 NSArray 实例。

它工作得很好,直到几秒钟后,服务器对象的进程(通过 launchd 启动)开始被标记为红色,旁边有“(未响应)”标签(在活动监视器内)。就像我说的,在功能上,它运作良好,但我们只是想摆脱这个“不响应”的标签。

如何防止出现此“未响应”标签?

仅供参考,我之前已经做过基于启动的流程,这是我第一次进行长轮询。此外,我尝试了基于 NSSocketPortNameServer 的连接以及基于 NSSocketPort 的连接。他们没有这个问题。锁定也不是问题,因为使用的锁只是 NSCondition 的,我们记录并调试了程序,似乎唯一的锁定“问题”在收获部分,实际上,在功能上有效。此外,客户端进程是用 PyObjC 编写的,而服务器进程是使用 ObjC 编写的。

提前致谢。

0 投票
1 回答
190 浏览

python - 恢复 Python/Cocoa 项目以使用默认的 OSX 10.5 Python (2.5)

我已经在我的 Leopard OS X 上安装了最新的 MacPython (2.6.2) 并启动了一个 XCode PyObjC 项目。

当我完成应用程序时,我构建了发布版本并将其发送给我的朋友,以尝试它是否可以开箱即用。它没有,因为它需要最新的 Python,就像在我的电脑上一样。

无论我尝试什么,我都找不到任何配置文件等,我可以在其中更改此设置以期待 OS X 附带的默认 Python。

任何和所有的帮助将不胜感激。

问候,OA

0 投票
1 回答
1144 浏览

cocoa - 在 PyObjC 中的 NSImage 上绘制文本时出错

我正在尝试使用 PyObjC 用一些文本覆盖图像,同时努力回答我的问题"Annotate images using tools built into OS X"。通过引用CocoaMagic,一个 RubyObjC 替代RMagick,我想出了这个:

当我运行它时,我得到了这个:

查看 drawAtPoint:withAttributes: 的文档,它说,“你应该只在 NSView 有焦点时调用这个方法。” NSImage 不是 NSView 的子类,但我希望这会起作用,并且在 Ruby 示例中似乎有一些非常相似的东西。

我需要改变什么才能使这项工作?


我重写了代码,将它忠实地逐行转换为一个 Objective-C Foundation 工具。它有效,没有问题。[如果有理由的话,我很乐意在这里发帖。]

那么问题就变成了,如何:

与......不同

? 有没有办法判断哪个“OC_PythonObject”引发了 NSInvalidArgumentException?

0 投票
1 回答
429 浏览

python - 如何确保注册的 atexit 函数将在 PyObjC 中使用 AppHelper.runEventLoop() 运行?

我只是想知道为什么我注册了一个 atexit 函数......例如

我当然知道什么时候atexit不会工作。当我注释掉AppHelper.runEventLoop()该函数时,该atexit函数被调用。我还浏览了我的pyobjcegg,我在package__init__.py下看到了以下代码:objc

我在鸡蛋中寻找任何参考都无济于事。我还尝试在 周围环绕一个 try-finally 外壳AppHelper.runEventLoop(),并且 finally 块中的命令不会被调用。

希望有人可以在这里帮助我。

PS假设我不想使用应用程序委托的applicationShouldTerminate:方法......

0 投票
2 回答
1137 浏览

objective-c - 调用从 PyObjC 获取 char* 的选择器

我正在尝试将私有框架与 PyObjC 一起使用。到目前为止我有这个:

这很好用。现在,我想用这个objective-c 签名在我的节点(DSoNode 类)上调用一个方法。

  • (BOOL) hasRecordsOfType:(const char*) inType

最明显的方法不知道如何获取字符串并将其传递给 char*:

看起来可以更改 python 看到的签名。我尝试了一些变化:

但是——坦率地说,我不知道 registerMetaDataForSelector 函数是如何工作的,也没有找到关于它的文档——当我在节点上调用我的选择器时,我仍然遇到同样的错误。如何告诉 PyObjC 将字符串转换为 char*?(或者有没有更好的方法,因为这些字符串是 C 常量 #defined 在头文件中。)


Update: I tried using gen_bridge_metadata (as mentioned in this blog post), and, after consulting the man page, tried it as follows:

I still get the same error; there is no indication that this was even noticed, except that if I type:

I get:

I should also mention that I found a list of types that I believe would be understood by the registerMetaDataForSelector function; objective-C type encodings. Note that the XML for the particular function I'm after says:

I would've expected something explaining the input parameter, too.

0 投票
2 回答
2294 浏览

macos - 有没有人在 Snow Leopard 中成功构建了 PyObjC 应用程序?

如果你这样做了,你介意分享一下你是如何安装 pyobjc 的吗?我试图通过安装 PythonMac 2.5(对于通过 py2app 的独立包)和 PyObjC 来做到这easy_install一点。我总是收到这些deprecated错误,主要是那些在dyld.h和 inside中声明的错误objc_inject.m

我尝试从源代码编译但仍然没有运气。

另外,当我在 Snow Leopard 下运行我的 Leopard 编译的 PyObjC 应用程序时,它有关于 PyObjC 的错误,第一次是它看不到Foundation或者AppKit,第二次typestr是未知的。

感谢并感谢您的回答。

0 投票
2 回答
653 浏览

iphone - 我可以使用 PyObjC 编写针对非越狱 iPhone 的 Python 应用程序吗?

目前是否可以为 iPhone 编译 Python 和 PyObjC,以便 AppStore 应用程序可以用 Python 编写?

如果不是,这是纯粹的技术问题还是 Apple 的蓄意政策决定?

0 投票
6 回答
4909 浏览

python - 雪豹上的 PyObjc 和 Cocoa

我即将开始我的 A-Level 计算项目(高中级别),该项目有望成为 Mac OS 的销售点应用程序。不幸的是,Objective-C 目前有点超出我的水平,如果我在项目中被它卡住,我没有人可以帮助,所以我会通过课程的部分并且无法进入大学。所以这对我来说非常重要。

我想用 Python 开发一个 Cocoa 应用程序。我知道我需要 PyObjc,但是网上的所有细节似乎都假设它是预先安装的。显然 Leopard 和 Snow Leopard 就是这种情况,但我似乎在 Snow Leopard 上没有它,也从未在 Leopard 上注意到它。另外,我尝试按照 Sourceforge 页面上的说明安装最新的 PyObjc 测试版,但没有成功。

如果有人能阐明需要安装什么、如何安装以及指向任何可以帮助我的资源或教程的链接,我将不胜感激。

在此先感谢您的帮助!

更新:我看到这是一个受欢迎的问题,我刚刚获得了“值得注意的问题”徽章,所以我想我会更新任何来到这个页面的人在得到答案后我做了什么。

不幸的是,我无法使用 Python 创建 Mac 应用程序。这在当时是相当令人失望的,但可能是一件好事。我用 C# 为我的项目制作了一个 Windows 应用程序,它是一个用于在模拟环境中创建和运行程序集应用程序的工具。我的课程老师现在已经开始使用我的工具而不是他自己的工具来教授课程了!我在计算项目上获得了非常高的分数(超过 90%),这有助于我在计算 A-Level 中获得 A*(可用的最高成绩),因此我进入南安普顿大学学习计算机科学。

今年夏天,我决定制作一个 iPad 应用程序(即将发布),我很高兴地说我知道我可以用 Objective-C 制作一个 Mac OS 应用程序,因为我觉得我已经学到了很多东西。我很高兴我花时间学习它,它是一门很棒的语言,并且在 iOS 变得如此流行时非常有用。

对不起所有的吹嘘,但我真的很高兴。我真正想说的是,如果您来到这个页面希望使用 PyObjc 轻松创建 Mac 应用程序,请不要打扰。这需要一些时间和一些努力,但是一旦你学会了 Objective-C,用它来创建应用程序真的很令人满意。祝你好运!