VC中的egg_info目录是什么?

21

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

下面是一个需要将其保留在VC中的示例:

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

这将是一次不负责任的发布;如果软件包中的任何功能发生更改,您都需要更新版本号。否则,您怎么知道已安装了正确的功能集? - Martijn Pieters
2
经验之谈:不要提交生成的信息。仅检查源代码。 - Martijn Pieters
如果你正在使用VC的egg,那么你已经安装了这些作为开发egg;只需在更新工作副本后重新运行setup.py。这并不是特别艰难。 :-) - Martijn Pieters
@MartijnPieters 谢谢您的评论。我感到不确定,有一种感觉这个目录不应该在 VC 中。如果您能在回答中回答这个问题,我可以接受它。 - guettli
1个回答

13
如果软件包中唯一的更新是添加了一个入口点,那么这将是一次不负责任的发布。如果软件包中有任何功能更改,则需要更新版本号。否则,您如何知道安装的功能集是否正确?
如果您正在使用来自版本控制系统(VCS)的egg文件,那么pip已经为您处理了egg信息的更新。只需再次运行pip install -e foo即可更新软件包并重新生成egg信息。
$ 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

egg info元数据完全从源代码生成; 只需将源代码提交到VCS中,完全不涉及egg info。这样您仍然可以生成特定于平台的依赖项,例如。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接