首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么`setup.py install`不更新脚本文件?

为什么`setup.py install`不更新脚本文件?
EN

Stack Overflow用户
提问于 2013-03-25 21:30:31
回答 2查看 6.1K关注 0票数 7

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

代码语言:javascript
复制
from distutils.core import setup
setup(
    # skip a lot of information here..
    scripts = ["chilin2/ChiLin2.py"],
)

我已经在第一次成功设置了我的包。过了一段时间后,我将脚本的line 209更新为:

代码语言:javascript
复制
$ sed -n 209p chilin2/ChiLin2.py
        macs2_on_merged.param["control_opt"] = "-c " + macs2_on_merged.input["control"]

然后再次运行setup.py

代码语言:javascript
复制
$ 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

但是,我发现脚本文件并没有被更改。

代码语言:javascript
复制
$ 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不更新的原因吗?有没有办法解决这个问题?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-25 22:01:58

尝试卸载此程序包,然后重新安装。

pip可以卸载包:

代码语言:javascript
复制
pip uninstall *packagename*
票数 1
EN

Stack Overflow用户

发布于 2014-05-05 15:20:31

我发现软件包中的Chilin2.py的时间戳比系统目录中的时间戳更老。

这很奇怪。你能用这些步骤重现这个bug吗:

  1. 创建用户安装(使用-- script.
  2. setup.py install

或--

  • 选项以避免sudo)

  • 编辑安装

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

这就是setup.py安装没有更新的原因吗?

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

有办法解决这个问题吗?

代码语言:javascript
复制
$ touch chilin2/ChiLin2.py
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15616189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档