7

setup.py文件中,我这样写:

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是不是不更新的原因?有什么办法解决吗?)

4

2 回答 2

1

尝试卸载此软件包,然后重新安装。

pip 可以卸载一个包:

pip uninstall *packagename*
于 2013-03-25T14:01:58.380 回答
1

我发现包中的 Chilin2.py 的时间戳比系统目录中的时间戳要早。

这很奇怪。您可以通过以下步骤重现该错误:

  1. 创建脚本。
  2. setup.py install(使用 --install 或 --user 选项来避免 sudo)
  3. 编辑脚本。
  4. setup.py 安装
  5. ?

如果你这样做了(即你在第一次安装后编辑了脚本),我不明白最新脚本的修改时间怎么会比安装的脚本更早。

这是 setup.py install 不更新的原因吗?

绝对:distutils 比较文件修改时间以查看是否需要重新构建(对于脚本,构建阶段包括将文件复制到临时构建目录并调整 shebangs)。

有没有办法解决这个问题?

$ touch chilin2/ChiLin2.py
于 2014-05-05T07:20:31.350 回答