Mac OS X上Python的框架版本与非框架版本之间的差异

马修·兰金(Matthew Rankin):

在Mac OS X上,Python的Framework构建和非Framework构建(即标准UNIX构建)之间有什么区别?另外,每种技术都有哪些优缺点?

初步研究

这是我在发布此问题之前发现的信息:

  • [Pythonmac-SIG]为什么需要构建Python框架
    • B. Grainger:“我似乎想起来,如果您想使用本机Mac GUI进行任何操作,都需要使用Python的Framework构建。我的理解正确吗?”
    • C. Barker:“相当多-要访问Mac GUI,一个应用程序必须位于正确的Mac应用程序捆绑包中。而Framework版本提供了这一点。”
  • Apple Developer Connection:框架定义
    • “框架是一个捆绑包(结构化目录),其中包含动态共享库以及相关资源,例如笔尖文件,图像文件和头文件。开发应用程序时,您的项目将链接到一个或多个框架。例如,iPhone应用程序项目默认情况下链接到Foundation,UIKit和Core Graphics框架,您的代码通过应用程序编程接口(API)访问框架的功能,API通过框架的头文件发布。动态共享,多个应用程序可以同时访问框架代码和资源。系统根据需要将框架的代码和资源加载到内存中,并在所有应用程序之间共享资源的一个副本。”
  • 框架编程指南:什么是框架?
    • “与静态链接库和其他类型的动态共享库相比,Framework具有以下优点:
      • 框架将相关但独立的资源分组在一起。此分组使安装,卸载和查找这些资源变得更加容易。
      • 与库相比,框架可以包含更多种资源类型。例如,框架可以包括任何相关的头文件和文档。框架的多个版本可以包含在同一捆绑中。这使得可以与旧程序向后兼容。
      • 在任何给定时间,只有一个框架的只读资源的副本在物理上驻留在内存中,无论有多少进程正在使用这些资源。资源共享减少了系统的内存占用,并有助于提高性能。”

背景

在Mac OS X 10.6 Snow Leopard之前,我对此并没有考虑太多,因为我只是下载并安装Python 2.6.2 Mac Installer Disk Image(这是一个框架构建),然后使用virtualenv,pip开展业务。 ,等等。但是,随着Snow Leopard更改为64位,gcc等,我注意到了一些问题,这些问题使我想从源代码构建/编译Python 2.6.2+,这使我进入了自己的领域。将Python构建为MacOSX | Darwin框架的优缺点的问题。

Alex Martelli:

您已经列出了制作框架的所有重要优点(祝贺您进行了出色的研究和报告!);唯一的反面是,很难正确地构建一个,但是如果您从引用的安装程序中的示例中获得一些线索,那应该是可行的。

顺便说一句,Snow Leopard随附的系统Python有什么问题?我还没有从Leopard升级(长话说,我确实有“家庭许可证”升级DVD,但是在升级之前需要Snow Leopard修复一些问题),所以我还没有第一手经验,但我确实知道它是2.6版本,并且有32位和64位版本...因此,为什么需要构建自己的框架?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章