2010-03-10 137 views
3

我正在研究發佈一個包含現有fortran或C程序的python包。該Fortran/C程序是通過運行編譯代碼的Python包

./configure 
make 

的Python代碼調用通過子進程調用生成的二進制(即,代碼是不是真的包裝成這樣的)編譯。我想的是,當用戶鍵入

python setup.py install 

該Fortran/C程序中使用./configuremake命令首先編譯,然後我想將要安裝的Python模塊,並安裝在二進制python bin/目錄以及通常通過distutils.core.setup中的scripts=選項安裝的可執行文件。

首先,這樣做有什麼問題嗎?如果不是,通過setup.py做什麼是最好的方法?是否有現有的功能來自動化./configuremake,因爲這是非常標準的?或者我應該只使用os.system來電?無論哪種方式,這些命令應該在setup.py?那麼我是否應該讓make將二進制輸出到例如scripts/然後在setup()函數中有scripts=['scripts/mybinary']

回答

2

不要讓這個過於複雜。

只需提供它們作爲單獨的項目與自述文件,說 - 基本上 - 你在問題中說什麼。

  1. 使用./configure; make; make install構建Fortran/C.

  2. 安裝Python與python setup.py install

它似乎不是火箭科學。試圖過度簡化安裝意味着你必須考慮到每一個操作系統變幻無常和奇怪。

更容易信任用戶執行「標準」安裝,以便Fortran/C位於系統PATH上,並且您的Python腳本應配置爲在系統PATH上找到它們。

想要使用您的軟件的人隨後可以自由地重新配置以滿足他們自己的獨特需求。無論如何他們會。不要過度包裝,迫使他們與你作鬥爭重新配置。

0

考慮編寫一個python C extension作爲C代碼的包裝,並將f2py擴展作爲Fortran代碼的包裝。然後你可以在Python代碼中使用它們作爲快速調用,而不是使用子進程。