问题标签 [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 投票
1 回答
562 浏览

python - 如何创建一个 Cocoa 库并在 python 中使用它

我一直在制作游戏,我使用的 python 库很糟糕(Pyglet)。我想尝试将 Cocoa 用于 OSX 版本。

我将能够弄清楚如何使用 NSWindow 和 NSOpenGLView 等类中的对象,然后将这些对象放入我自己的类中以进行游戏循环。

我不知道如何使用 PyObjC 加载我可以制作的动态 Objective-C 库,然后使用我将在 python 中制作的类来设置我认为可以由 NSTimer 循环的游戏。

但是,循环方法还需要从许多 python 类之一调用 python 方法。我的游戏包含许多用于游戏不同部分的 Python 类(Mapmaker、GameSession、AnacondaGame 等)。游戏循环将需要根据当前部分调用任何这些类中的循环方法并传递偶数信息。

PyObjC 显然是“双向”的,那么它是如何完成的呢?

或者,我可以创建两个由 py​​thon 调用的方法,并在中间添加 python 代码,其中循环由 python 控制。

PyObjC 网站上的“文档”似乎只解释了如何在 python 中使用 Cocoa,仅此而已。

我不能做的是使用界面构建器制作一个固定的 GUI,因为该库需要根据我的类的初始化方法的 python 输入来创建窗口。

了解 Objective-C 的语法并不是什么大问题,我可以参考 Cocoa 文档来制作我需要的对象。

感谢您的任何帮助。将不胜感激。我厌倦了使用 pygame 和 pyglet 等损坏的库,使用特定于平台的 OS API 似乎是确保质量的最佳方法。

0 投票
1 回答
865 浏览

iphone - iPhone 有什么好的客户端-服务器数据同步框架吗?

我刚刚进入我的 iPhone 应用程序项目的客户端-服务器数据同步阶段,并设法在 iPhone 客户端和我的 TurboGears 服务器上加载了我的 CoreData 数据模型(这很好)。我现在开始解决在服务器和多个客户端之间同步数据的问题,虽然我可以自己动手,但这似乎是非常普遍的问题之一,因此应该有框架或库提供了大量的功能。

有谁知道可能适用于这种环境的一个(例如 iPhone 上的 Objective-C,服务器上的 pyobjc / Python)?如果没有,是否有人知道设计模式或普遍同意的方法,这将是自我实现的好方法?除了“数据同步”或“远程对象持久性”之外,我找不到一个普遍接受的术语来解决这个问题,这两个术语在 Google 上都没有多大用处。

我确实遇到了 Funambol 框架,它看起来提供了这种确切类型的功能,但是,它是基于 C++/Java 的,因此它似乎不适合我项目中的特定语言。

非常感谢任何帮助。

0 投票
1 回答
710 浏览

python - 在 PyObjC 中使用 python 函数回调?

我正在尝试使用 Python 制作的 Objective-C 类来执行此操作,但 Objective-C 无法调用调用 python 函数的方法。

这是 Objective-C 代码的框架代码:

这是加载框架并测试回调使用失败的python脚本。

我得到输出:

9 分段错误

分段错误是因为python中的调用方法显然不存在。那么如何让它存在于 Objective-C 中呢?

即使代码确实有效,它也是无用的,但我现在只是在测试东西。一旦我的回调工作正常,我就可以为 python 创建我的库。

感谢您的任何帮助。

0 投票
1 回答
708 浏览

iphone - 从 pyobjc 应用程序调用自定义 Objective-C?

这个问题基本上是另一个问题的反面:Calling Python from Objective-C

我已经在 Objective-C 中实现了我的 iPhone 应用程序逻辑(显然),现在我试图在服务器组件中尽可能多地重用我的 XCode 项目以节省双​​重实现。我已经从 Python 成功加载了 CoreData 数据模型,但是,看不到从 Python 实际调用 Objective-C 逻辑的方法。

基本上,我正在尝试从 Python 访问我的 iPhone 项目中的 Objective-C 类和方法,以免自己重复所有的实现。

这甚至是模糊的可能,还是重复实现是这里唯一的解决方案?似乎 Boost::Python 可能用于这种事情,但我不太确定。

编辑:Boost::Python 不能工作,因为它是基于 C++ 的,我需要 Objective-C。我知道那行不通是有原因的。

0 投票
1 回答
538 浏览

python - Mac OS X 上的 wxPython:在不窃取焦点的情况下创建 wx.Frame

我设法让它在 Win32 上工作(从 wx.MiniFrame 继承就可以了),在 wxGTK (wx.PopupWindow)上,但无论我尝试什么,当我在 wxMac 上创建一个框架时,我的主窗口失去焦点并且新框架得到它.

wxMac 似乎没有办法与本机平台进行交互(例如 Win32 上的 GetHandle() 和 wxGTK 上的 GetGTKWidget()),所以我不能以这种方式破解它。

我设法让它在另一种情况下工作,通过在启动时创建框架并将其移动到显示区域之外,然后在需要时将其移动到可见位置。但是现在这会很麻烦,因为我事先不知道我需要多少帧。

那么,有没有更简单的方法来做到这一点?

0 投票
2 回答
610 浏览

python - 使用 PyObjC 以正常方式打印 python 异常

我收到这样的错误:

2010-07-13 20:43:15.131 Python[1527:60f] main: 捕获 OC_PythonException: : LoginMenuSet 实例没有属性“play_sound”

这就是这段代码:

我希望 python 异常与回溯和其他所有内容一起正常打印。

谢谢你。

0 投票
1 回答
210 浏览

python - 如何从 src 构建 pyobjc

我正在尝试从 src 构建 pyobjc,所以我查看了http://svn.red-bean.com/pyobjc/trunk

但是在那之后我不知道我要做什么来构建它,我没有看到任何 make 或 setup 文件?

编辑 1: 我在 trunk/pyobjc/pyobjc 文件夹中尝试了 setup.py,但它尝试下载似乎已经在 trunk/pyobjc 中的所有必需模块,例如它说(如果我关闭互联网)

找不到 pyobjc-framework-XgridFoundation==2.3b1 的本地包或下载链接

但是trunk/pyobjc有pyobjc-framework-XgridFoundation

0 投票
0 回答
554 浏览

python - `import objc` 中的错误:找不到符号:_PyType_Modified

我的系统是 Mac OS X 10.5.8,我已经从http://www.python.org/ftp/python/2.5.4/python-2.5.4-macosx.dmg安装了 python,因为我不想使用 System python(已经随 Mac OS X 一起安装的 python)并完全删除了系统 python。

现在,当我尝试安装 pyobjc 时,它会安装,但在导入时会出错

有人用 python.org python 安装了 pyobjc 吗?

如果有帮助,这里是执行“easy_install pyobjc”时的警告

0 投票
2 回答
398 浏览

python - 将 10.5 (Leopard) 的 PyObjC 应用程序编译成 xcode 10.6 (Snow Leopard)

我正在尝试在 10.5 上部署在 Xcode 3.2.X(雪豹)上开发的 PyObjC(或 Cocoa-Python)应用程序,该应用程序在 10.6 系统上运行得非常好。

该应用程序未在 10.5 上启动;它在启动时崩溃并给出以下错误消息(在崩溃报告中找到):

Dyld 错误消息:未加载库:/System/Library/Frameworks/Python.framework/Versions/2.6/Python 引用自:/Users/myuser/Documents/myApp.app/Contents/MacOS/myApp 原因:找不到图像

似乎 Xcode 在某处硬编码了 Versions/2.6 python 框架路径(例如,而不是将其设置为 Versions/Current)。

但是,我无法找到可以修改此链接路径以设置为当前(或设置为 2.5,可能有条件)的位置...

0 投票
1 回答
2268 浏览

python - 在 Mac OSX 上找到当前焦点所在的应用程序窗口

我正在编写一个桌面使用统计应用程序。它运行一个定期唤醒的后台守护程序,找到当前焦点所在的应用程序窗口的名称并将该数据记录在数据库中。

我设法在 xprop 实用程序的帮助下在 Linux 桌面上执行此操作(您可以在此处找到它)。

我怎样才能在 Mac OSX 上做同样的事情?是否有直接/间接的方法可以从 python 脚本执行此操作?(PyObjC?)