“pip install -e”中如何使用“egg=”?

问题描述 投票:0回答:2

尝试测试可编辑安装,但我不确定如何解释结果。

我故意在

egg=
部分打错字,但它仍然能够在没有我帮助的情况下找到鸡蛋:

root@6be8ee41b6c9:/# pip3 install -e git+https://gitlab.com/jame/clientapp.git      
Could not detect requirement name for 'git+https://gitlab.com/jame/clientapp.git', please specify one with #egg=your_package_name

root@6be8ee41b6c9:/# pip3 install -e git+https://gitlab.com/jame/clientapp.git#egg=
Could not detect requirement name for 'git+https://gitlab.com/jame/clientapp.git#egg=', please specify one with #egg=your_package_name

root@6be8ee41b6c9:/# pip3 install -e git+https://gitlab.com/jame/clientapp.git#egg=e
Obtaining e from git+https://gitlab.com/jame/clientapp.git#egg=e
  Cloning https://gitlab.com/jame/clientapp.git to /src/e
  Running setup.py (path:/src/e/setup.py) egg_info for package e produced metadata for project name clientapp. Fix your #egg=e fragments.
Installing collected packages: clientapp
  Found existing installation: ClientApp 0.7
    Can't uninstall 'ClientApp'. No files were found to uninstall.
  Running setup.py develop for clientapp
Successfully installed clientapp

root@6be8ee41b6c9:/# pip3 freeze
asn1crypto==0.24.0
-e git+https://gitlab.com/jame/clientapp.git@5158712c426ce74613215e61cab8c21c7064105c#egg=ClientApp
cryptography==2.6.1
entrypoints==0.3
keyring==17.1.1
keyrings.alt==3.1.1
pycrypto==2.6.1
PyGObject==3.30.4
pyxdg==0.25
SecretStorage==2.3.1
six==1.12.0

所以,如果我可以把鸡蛋名称搞得这么糟糕,为什么将其留空或设置为空会被认为是错误

python pip setuptools
2个回答
5
投票

这是过时的符号。如今,只要有可能,就应该使用以下符号:

python -m pip install 'ProjectName @ git+https://example.local/[email protected]'

我的猜测,如果该项目是另一个项目的依赖项,那么名称很重要。例如,有人想要从

PyPI
安装 A 并从
git
安装 Z,但
Z
A
的依赖项。

python -m pip install 'A' 'git+https://example.local/repository.git#egg=Z'

或使用新的符号:

python -m pip install 'A' 'Z @ git+https://example.local/repository.git

2
投票

egg=
是卸载从 VCS 存储库安装的未打包库时使用的名称,也是依赖项解析程序在搜索依赖包时使用的名称。

如果您不关心这两个用例,它们基本上可以设置为任何值。

它通过 setup.py 找到了鸡蛋

它没有通过setup.py找到egg,pip找到了setup.py并将setup.py安装的egg名称设置为您指定的任何名称。当您从 VCS 安装时,没有软件包,因此没有配置 Egg 名称,

egg=
配置安装,就像使用具有该 Egg 名称的软件包安装一样。

© www.soinside.com 2019 - 2024. All rights reserved.