2012-10-01 49 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/)也是跨平臺的。 –