2012-10-01 43 views
0

如果我有一个应用程序被编写在Python中,并且具有像numpy和scipy一样的依赖关系,并且是C语言的一部分,我如何将它打包为可执行文件(例如Linux)或作为源代码发布包在安装numpy/scipy和其他Python模块?即是否有可能将numpy/scipy打包成二进制文件?谢谢。包装numpy/scipy和其他Python包与C应用程序?

+1

[Distutils](http://docs.python.org/distutils/index.html#distutils-index)可以用您的Python应用程序打包C扩展文件。解决用户计算机依赖问题的最简单方法是使用软件包管理器,或在用户指南中给出明确的说明。你并不是真的想要构建一个全新的Python发行版。 –

+0

但是如果你想制作一个二进制文件呢? – user248237dfsf

+0

构建的发行版在[官方的Distutils文档](http://docs.python.org/distutils/builtdist.html)中有解释。我的建议是不要试图将numpy重新包装到安装程序中。相反,请尝试仔细记录依赖关系(如果您喜欢,请为每个依赖关系提供安装说明),并让用户设置自己的环境。 –

回答

1

如果你想要一个独立的可执行文件,我建议尝试PyInstaller。它是跨平台的(Windows,Linux,MacOS X,...),并且具有相当广泛的支持,对许多packages具有二进制相关性,包括numpy

+0

是否有替代方案?如果你包含一个没有开箱即用的支持,它是否有限制? – user248237dfsf

+0

我一直在使用它在Windows上的一个相当复杂的应用程序(计划将它扩展到Mac OS X和Linux的包),并且它工作得很好。我建议你尽量按照提供的说明进行操作,如果碰到任何障碍,我将能够提供帮助。对于Windows(和[py2app](http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html)),Mac的替代方法是[py2exe](http://www.py2exe.org/) OS X)作为@millimoose在你的问题的评论中提到,[cx_Freeze](http://cx-freeze.sourceforge.net/)也是跨平台的。 –