12

我即将开始我的 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,用它来创建应用程序真的很令人满意。祝你好运!

4

6 回答 6

18

请允许我重复已经说过的话。我也是一个刚开始 Cocoa 开发项目的学生,一开始我想“好吧,我已经知道 Python,我会使用 PyObjC 并让自己免于学习 Objective-C,这看起来超出了我的掌握。 " 我很快就知道这是不可能的。您可以在不学习 Objective-C 的情况下为 OS X 进行开发,但不能不学习 Cocoa 库,这些库构成了使用 Objective-C 编写 Cocoa 应用程序所需学习的 99%。Objective-C 本身并不难。这是您需要投资于学习的 Cocoa 库。

PyObjC 基本上使用 Cocoa 库和 Python 语法。我很快就放弃了,并决定如果我必须学习 Cocoa,我不妨使用 Objective-C。

如果您想学习,Aaron Hillegass 的书是一个很好的起点。祝你好运!

于 2009-08-31T22:00:20.047 回答
7

你的意思是像Checkout一样?:-) 我只提到它是因为 Checkout 非常漂亮并且是用 PyObjC 编写的......

您的担忧是有道理的,尽管可能不像您想象的那样具有潜在的影响力。使用 PyObjC 仍然需要您学习一些 Objective-C,并且肯定需要您至少了解一些 Cocoa 框架,因为当您需要执行某种 Cocoa 特定任务时,您需要调用 Cocoa 框架。

我建议您阅读并考虑 SO 问题“为什么 PyObjC 文档如此糟糕?” “PyObjc vs RubyCocoa for Mac 开发:哪个更成熟?” 在你完全说服自己“只是 PyObjC”会让事情变得更容易之前。我拒绝贬低 PyObjC,因为它非常强大且非常有用,但要意识到没有什么是灵丹妙药,也没有任何语言或技术可以解决所有问题。

Objective-C 语言很简单,也很直接。Cocoa 框架通常主导着新 Cocoa 程序员的学习曲线。此外,您还有 StackOverflow 和许多其他资源来帮助回答您的问题。(从“pyobjc”标签的活动来看,你也有更好的机会在 SO上获得良好的 Objective-C 帮助。)

于 2009-08-31T21:00:03.990 回答
4

作为 Checkout 开发人员之一,我也会参与进来(嗨 Quinn!)。从我们所见,PyObjC 在 Snow Leopard 上运行得相当好。我们已经构建了最新的 SVN 修订版 2.2b 之一,并在 Leopard 上进行了一些自定义,并且刚刚移到了 site-packages 文件夹。

从理论上讲,您应该能够使用内置的 Python/PyObjC(只需导入 objc、Foundation、AppKit),但是当我们发布/使用 Python 和 PyObjC 的自定义版本时,我不确定状态到底是什么。邮件列表没有提到很多人有问题(只有少数人),所以这可能是一个好兆头。

祝项目好运,如果您有特定的 POS 问题,请给我发电子邮件;-)

于 2009-08-31T21:48:38.290 回答
3

我自己几乎不使用 PyObjC,但我相信您需要在 Snow Leopard DVD 上运行 Xcode 安装程序才能使用 PyObjC。

此外,正如 Quinn 所说,您至少需要了解一些 Objective-C 才能使用像 PyObjC 这样的 Cocoa 桥接器,而不会费尽心机。它只是不能完全隔离你。

于 2009-08-31T21:06:29.373 回答
3

我在这里同意奎因的观点。即使您已经精通 Python,学习如何连接 Python 和 Cocoa 也不会比使用 Objective-C 学习 Cocoa 容易。

Objective-C 是一种简单、干净的语言,很容易上手。构建 GUI 并将其连接到后端将比学习 Objective-C 编写后端更难,而构建 GUI 并将其连接起来并不难。

遵循Cocoa 应用程序教程(你应该可以在一天内完成,如果速度慢的话,可能需要一个周末),你会顺利上路。

于 2009-08-31T21:41:34.623 回答
3

我是一名长期的 Python 开发人员,现在已经做了一段时间的 iPhone 应用程序(并且只使用我的 Python 知识在运行脚本中为应用程序打包构建文件),然后开始制作一些 PyObjC 应用程序。

我不得不说,PyObjC 仍然需要学习 Objective C(我已经通过 iPhone 开发人员知道了),但是如果你使用它,你会获得一些非常酷的好处

  • 轻松使用你知道的 python 库(对你来说更快)
  • 如果被 Cocoa 阻止,可以选择删除它并转到 wxPython
  • 更快的开发时间(您编写的代码更少,而且两种语言之间的翻译非常容易习惯)。

此外,相对而言,界面构建器有点难以适应,但如果你是一个 python 开发者,无论如何你并不完全习惯于一个功能性的 gui 构建器:oP

于 2009-12-15T05:06:45.517 回答