2013-05-22 19 views
2

爲了安裝Python包我們做就地和一個安裝建築Python擴展拍攝

python setup.py install 

,或者如果我們用Cython模塊,以建立他們在原地的,我們做

python build_ext --inplace 

有沒有一種方法可以同時做到這一點?這對我很有用,這樣我就可以對本地文件執行源代碼級調試,同時還可以使我的站點包保持最新,以便使用站點包代碼的GUI程序進行更新。

通常我砍我的setup.py文件有在標題是這樣的:

if len(sys.argv) == 1: 
# sys.argv += ['build_ext','--inplace'] 
    sys.argv += ['build','install'] 

然後我去掉一個我想和註釋掉另外一個。這很醜陋,但是這樣我就可以運行setup.py腳本(在Scite或Eclipse中)而不必訴諸於控制檯。所以我理想喜歡使用類似於如下命令:

sys.argv += ['build_ext','--inplace','install'] 

但這些語義不起作用,python生氣

回答

1

以下工作? (我現在不能測試。)

python setup.py build_ext --inplace install 
+0

都能跟得上 - 它不會複製在build_ext工序中產生的.pyd文件 - 只有.py文件被拷貝 – ibell

+0

聽起來好像是我的錯誤; install命令調用build,調用build_ext,distutils注意合併所有選項並運行一次命令,因此,當install命令隱式地運行build_ext時,應該使用命令行上顯式的選項build_ext。也許跟蹤哪些文件被創建並且應該被安裝複製的代碼有一個bug。 –