您是否将foo.egg_info
目录保存在版本控制中?
这是一个在 VC 中使用它会很好的示例:
pip install -e foo
- 其他人添加了一个新的入口点 ( pkg_resource )
- 您更新代码并提取新的入口点(文件
foo.egg-info/entry_points.txt
) - 无需
setup.py
再次调用即可使用新的入口点
您是否将foo.egg_info
目录保存在版本控制中?
这是一个在 VC 中使用它会很好的示例:
pip install -e foo
foo.egg-info/entry_points.txt
)setup.py
再次调用即可使用新的入口点如果包中的所有更新只是增加了一个入口点,那将是一个不负责任的发布;如果包中的任何功能发生变化,您需要更新版本号。你怎么知道你安装了正确的功能集?
如果您使用的是来自 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 并将鸡蛋信息完全排除在外。例如,这样您仍然可以生成特定于平台的依赖项。