17

您是否将foo.egg_info目录保存在版本控制中?

这是一个在 VC 中使用它会很好的示例:

  1. pip install -e foo
  2. 其他人添加了一个新的入口点 ( pkg_resource )
  3. 您更新代码并提取新的入口点(文件foo.egg-info/entry_points.txt
  4. 无需setup.py再次调用即可使用新的入口点
4

1 回答 1

11

如果包中的所有更新只是增加了一个入口点,那将是一个不负责任的发布;如果包中的任何功能发生变化,您需要更新版本号。你怎么知道你安装了正确的功能集?

如果您使用的是来自 VCS 的鸡蛋,那么 pip 已经为您更新了鸡蛋信息。再跑pip install -e foo一次;它将更新包并为您重新生成鸡蛋信息:

$ bin/pip install -e git+https://github.com/mjpieters/setuptools_subversion.git#egg=setuptools_subversion
Obtaining setuptools-subversion from git+https://github.com/mjpieters/setuptools_subversion.git#egg=setuptools_subversion
  Cloning https://github.com/mjpieters/setuptools_subversion.git to /tmp/pip-e/src/setuptools-subversion
  Running setup.py egg_info for package setuptools-subversion

Installing collected packages: setuptools-subversion
  Running setup.py develop for setuptools-subversion

    Creating /private/tmp/pip-e/lib/python2.7/site-packages/setuptools-subversion.egg-link (link to .)
    Adding setuptools-subversion 3.2 to easy-install.pth file

    Installed /private/tmp/pip-e/src/setuptools-subversion
Successfully installed setuptools-subversion
Cleaning up...
$ bin/pip install -e git+https://github.com/mjpieters/setuptools_subversion.git#egg=setuptools_subversion
Obtaining setuptools-subversion from git+https://github.com/mjpieters/setuptools_subversion.git#egg=setuptools_subversion
  Updating /tmp/pip-e/src/setuptools-subversion clone
  Running setup.py egg_info for package setuptools-subversion

Installing collected packages: setuptools-subversion
  Running setup.py develop for setuptools-subversion

    Creating /private/tmp/pip-e/lib/python2.7/site-packages/setuptools-subversion.egg-link (link to .)
    setuptools-subversion 3.2 is already the active version in easy-install.pth

    Installed /private/tmp/pip-e/src/setuptools-subversion
Successfully installed setuptools-subversion
Cleaning up...

注意第二次调用;第二个运行状态不是“克隆”,而是pip“更新”VCS 克隆,然后setup.py egg_info再次运行。

鸡蛋信息元数据完全从源头生成;只将源代码提交给 VCS 并将鸡蛋信息完全排除在外。例如,这样您仍然可以生成特定于平台的依赖项。

于 2013-10-15T08:57:03.753 回答