2010-03-19 116 views
5

我們的組織中有許多混合了Python/C的項目。目前,我們正在努力爲我們的項目實現目錄佈局的標準化,並試圖提出一個方便的方案。爭論的一點是將C擴展模塊放在樹中的位置。具有C擴展模塊的Python項目的目錄佈局

我們折騰周圍幾個選項(相對於項目的根目錄):

./src/package/subpackage/module.c 

或在包樹的Python模塊旁邊:

./package/subpackage/module.c 

或在一個src目錄子包裝:

./package/subpackage/src/module.c 

使其脫離包裝導向器的一個原因可能是因爲它會導致混亂,特別是如果有其他.c和.h文件,它們本身不是模塊,但仍需要編譯。同樣在「集成」方案中,你如何處理由多個模塊使用的標題和文件?把它們放在一個共同的頂層目錄中?

我很想知道其他人正在使用什麼,或者是否有任何已建立的最佳實踐。

+0

如果有關於此主題的任何消息,我會很高興聽到。 – 2015-02-19 20:57:37

回答

1

我認爲Python標準庫的佈局是合理的例子:trunk,這基本上是爲SVN回購的根(淨分支&的C)下,該Modules目錄有很多.c.h文件, Lib目錄有很多.py文件。在我自己的項目中,我傾向於將源分成類似的(實際上,如果我有Cython或Pyrex的,或SWIG等,我傾向於還有其他目錄尚未細分),儘管使用不同的目錄名稱(我承認我對目錄名稱本身沒有一致的規則,我也沒有聽說過這些名稱的良好指導原則)。

+0

我看過Python標準庫,我不相信這是一個很好的例子。主要是因爲該組織的很多決定都退後了,可能並不能反映目前正在使用的所有東西。 我想如果我要走這條路線,我需要一個構建腳本,然後從所有不同的位置收集模塊,並將它們放到最終的軟件包目錄中進行測試或部署? – 2010-03-19 22:00:31