2011-06-15 57 views
6

我的項目混合了純Python代碼和Cython擴展以優化和鏈接C庫。我有一個用於Python項目的源代碼樹,一個用於Cython和C代碼。我的Cython擴展每個都有一個setup.py文件來構建它們。實際上,對於每個擴展,我做到以下幾點:將Python擴展安裝到特定位置

python setup.py build_ext --inplace 
mv myext.so ../some/specific/place/ 

是否有指定的distutils安裝到哪裏我擴展的方式(如果可能的話,使用相對路徑),而不是使用--inplace其次mv?使用--prefix選項不好,因爲它創建了我不需要的文件夾層次結構。

+0

你可以把你的'setup.py'的內容? – 2011-06-16 09:45:36

回答

9

我終於找到了答案!選項是-b(或--build_lib)

python setup.py build_ext -b ../some/specific/place/ 
+0

謝謝 - 只是要注意它是'--build-lib'而不是'--build_lib' – Giswok 2016-01-13 13:14:34

0

也許你可以使用distutils的alternate installation函數,這將允許你刪除無用的層級文件夾。

嘗試這樣:

python setup.py install --home=../some/specific/place \ 
         --install-purelib=. \ 
         --install-platlib=. 
+1

這樣做可以將我的擴展安裝到當前目錄中,就像使用--inplace一樣。 – 2011-06-15 19:32:55