簡體   English   中英

distutils在構建擴展時忽略對setup.py的更改?

[英]distutils ignores changes to setup.py when building an extension?

我有一個構建擴展的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 .

我發現重建它的唯一方法是,如果我在源文件中添加垃圾,觸發重建和錯誤,刪除垃圾,以及pip install -e . 再次...

  1. 只需在site-packages路徑下刪除任何與之相關的文件,您可能會發現有時會將多個版本或某些文件打包為zip文件或運行以下命令python setup.py clean --all
  2. 重新編譯並重新安裝。

但我建議使用python setup.py develop這樣你就不需要在每次更改時重新安裝它,你就可以經常編輯你的代碼,而不必再重新安裝它。 python setup.py install通常用於安裝即用型第三方軟件包。

點擊這里以更好地了解python包裝

摘要

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

我需要跑

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

感謝DhiaTN讓我到那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM