2013-03-25 69 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 
相关问题