2016-01-21 79 views
1

我有一個setup.py文件構建擴展。如果我更改其中一個源文件,distutils會識別這個並重建擴展,並顯示所有編譯/鏈接命令。但是,如果我改變的唯一東西是setup.py(我試圖讓庫依賴性工作),那麼它似乎沒有重建(例如,沒有一個編譯/鏈接命令顯示出來) 。我已經在該行構建擴展時,distutils會忽略對setup.py的更改嗎?

sources = ['foo.c', 'bar.c' ...] 

刪除源文件中的一個,並測試了這個時候我pip install -e .python setup.py install,它仍然會爲擴展名的新文件,但必須版本緩存的地方,因爲它不應該編譯。

如何清除此緩存?我曾嘗試

python setup.py clean --all 

或做pip install -e .

我發現,使其重建是,如果我在源文件中添加垃圾的唯一方法時,使用--ignore-installed--no-cache-dir標誌,引發了重建和錯誤,刪除垃圾,並pip install -e .再次...

回答

1

我需要運行

python setup.py clean --all 
python setup.py develop 

感謝DhiaTN你爲我那裏。

1

只要在site-packages路徑下刪除任何與它有關的文件,你可能會發現有時多個版本或打包成zip文件的一些文件。重新編譯並重新安裝。

但是我會推薦使用python setup.py develop,所以你不需要每次更改都重新安裝它,你將能夠頻繁地編輯你的代碼,而不必重新安裝它。 python setup.py install用於安裝通常即可使用的第三方軟件包。

請點擊這裏以更好地瞭解python packaging

+0

謝謝! 'python setup.py develop'正是我所需要的。但在網站包下刪除不適合我。我必須'python setup.py clean --all'然後'python setup.py develop'。這工作沒有刪除'site-packages'下的任何東西。 – Dan