Lor*_*ein 79 python pip package
当我从git repo安装"pip install -e ..."时,我必须指定#egg = somename或pip complains.例如:
pip install -e git://github.com/hiidef/oauth2app.git#egg=oauth2app
Run Code Online (Sandbox Code Playgroud)
这个"蛋"字符串有什么意义?
Wil*_*Ayd 29
每个pip install -h"egg"字符串是作为安装的一部分检出的目录
meh*_*guh 17
Egg 只是一些捆绑的 Python 代码。在 git url 中,egg 是项目名称。 VCS 支持
通常我们从 Pypi 安装 python 包,所以你只指定包名和版本(如果你不指定,它会假设最新版本)。Pypi 然后搜索您想要的鸡蛋并 pip 安装它。 pip install celery将安装最新发布的 egg 并pip install celery[redis]安装一个不同的包含相同 celery 包的 egg 并且还会安装来自 celery 的 setup.py 中作为 redis 依赖项列出的任何包中的最新鸡蛋。
使用 git 和 gitlab 路径,您可以指定/{user|group}/{repository}.git@{tag}#egg={package-name}. #egg=celery和之间存在差异#egg=celery[redis],但它们都来自相同的源代码。
除了实际标签之外,“标签”也可以是分支或提交哈希。master如果您不指定,则假定为。
例如,git+https://github.com/celery/celery.git#egg=celery==4.3.0会检查主分支并安装它。即使您指定了版本号,安装中也不会考虑它。版本号被忽略
通过 git 或其他 VCS url 安装时,您需要找到所需版本的标签或哈希。例如,git+https://github.com/celery/celery.git@v4.3.0#egg=celery它将检出标记为“v4.3.0”的提交,然后从该源代码安装包。假设维护者没有严重错误地错误标记他们的存储库,你可以获得你想要的版本。
https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support说:
url 后缀“egg=-”的“项目名称”组件是 pip 在其依赖逻辑中使用的,用于在 pip 下载和分析元数据之前识别项目。鸡蛋名称的可选“版本”组件在功能上并不重要。它仅提供有关正在使用的版本的人类可读线索。对于 setup.py 不在项目根目录中的项目,使用“子目录”组件。“子目录”组件的值应该是从项目根目录到 setup.py 所在位置的路径。
由此我推断出 egg 值仅用于依赖项检查,因此我认为,按照惯例,some-pypi-package-name应该使用包名称(即),而不是任何包含的文件夹(即some_pypi_package_name)
您必须包含#egg = Package,因此pip知道该URL的内容.请参阅https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support
| 归档时间: |
|
| 查看次数: |
21420 次 |
| 最近记录: |