在Mac OS X上构建Python的框架
题
在Mac OS X上,Framework构建与Python的非构建(即标准UNIX构建)Python之间有什么区别? 另外,每个的优点和缺点是什么?
初步研究
以下是发布此问题之前发现的信息:
背景
在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,但是需要雪豹在升级之前修复一些东西),所以我还没有第一手的经验,但我确实知道这是一个2.6版本,它有32位和64位版本......所以你为什么需要构建自己的框架?
还有一个区别:通常安装程序从python.org提供的Framework安装有几种体系结构。
$ file libpython2.7.dylib
libpython2.7.dylib: Mach-O universal binary with 2 architectures
libpython2.7.dylib (for architecture i386): Mach-O dynamically linked shared library i386
libpython2.7.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
如果你从源代码安装,而不是故意改变它,你的libpython只有一个体系结构。 我曾遇到两种架构实际上导致问题的情况(至少我相信这是原因),即在安装HDF5 python绑定(h5py)时。
还有一个区别:一些工具需要安装框架。 例如PyQt,特别是SIP。 虽然可以安装sip和PyQt,即使是非框架版本的python也是如此,它要复杂得多。
至于决定选择什么,我仍然不知道。 此刻,我选择了非框架选项,但我必须说,这也让我感到头痛。
如果你要发布你的代码(让它运行在另一台机器上),你最好使用系统版本的python,否则你的程序行为将在其他机器上未定义。
链接地址: http://www.djcxy.com/p/76405.html上一篇: Framework builds of Python on Mac OS X
下一篇: Is a string formatter that pulls variables from its calling scope bad practice?