在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:框架定义 “框架是一个捆绑包(结构化目录),其中包含动态共享库以及相关资源,例如nib文件,图像文件和头文件。开发应用程序时,您的项目将链接到一个或多个框架。例如,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框架的优缺点的问题。
您已经列出了制作框架的所有重要优点(祝贺您进行了出色的研究和报告!);唯一的反面是,很难正确地构建一个,但是如果您从引用的安装程序中的示例中获得线索,那应该是可行的。
顺便说一句,Snow Leopard随附的系统Python有什么问题?我还没有从Leopard升级(长话说,我确实有“家庭许可证”升级DVD,但是在升级之前需要Snow Leopard修复一些问题),所以我还没有第一手经验,但我确实知道它是2.6版本,并且有32位和64位版本...所以您为什么需要构建自己的框架?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。