2013-03-25 71 views
4

setup.py文件,我寫的是這樣的:爲什麼`setup.py install`不會更新腳本文件?

from distutils.core import setup 
setup(
    # skip a lot of information here.. 
    scripts = ["chilin2/ChiLin2.py"], 
) 

我成功已經設置我的包在第一次。過了一會兒,我更新的腳本line 209到這一點:

$ sed -n 209p chilin2/ChiLin2.py 
     macs2_on_merged.param["control_opt"] = "-c " + macs2_on_merged.input["control"] 

,然後再次運行setup.py

$ sudo python3 setup.py install 
running install 
running build 
running build_py 
running build_scripts 
running install_lib 
running install_scripts 
changing mode of /usr/local/bin/ChiLin2.py to 755 
running install_egg_info 
Removing /usr/local/lib/python3.2/site-packages/chilin2-0.1-py3.2.egg-info 
Writing /usr/local/lib/python3.2/site-packages/chilin2-0.1-py3.2.egg-info 

然而,我發現,該腳本文件沒有被改變..

$ sed -n 209p /usr/local/bin/ChiLin2.py 
     macs2_on_merged["control_opt"] = "-c " + macs2_on_merged.input["control"] 

我試過setup.py clean,然後再setup.py install,但這並不能解決問題。有沒有人有關於此的想法?

(我發現,在包Chilin2.py具有比長輩時間戳在系統目錄下。是那個setup.py install不更新的原因是什麼?有沒有辦法解決這個問題的方法嗎?)

+0

起初我還以爲這是http://bugs.python.org/issue10374但錯誤是不同的。 – 2014-05-05 07:16:02

回答

1

嘗試卸載此軟件包,然後重新安裝它。

PIP可以卸載包:

pip uninstall *packagename* 
1

我發現Chilin2.py在包中,具有比系統目錄中的長老時間戳。

這很奇怪。您是否可以通過以下步驟重現該錯誤:

  1. 創建腳本。
  2. setup.py install(帶有--install或--user選項以避免sudo)
  3. 編輯腳本。
  4. setup.py install

如果您這樣做了(即您在第一次安裝後編輯腳本),我不明白最新腳本的修改時間如何比安裝的腳本早。

這是setup.py安裝不更新的原因嗎?

當然:distutils比較文件修改時間,看它是否需要重新構建(對於腳本,構建階段包括將文件複製到臨時構建目錄並調整shebangs)。

有沒有辦法解決這個問題?

$ touch chilin2/ChiLin2.py 
相關問題