Pip:将依赖项安装为可编辑



我有一个内部Python应用程序,它作为包的集合进行部署,我需要一种方法让开发人员快速将所有这些包作为可编辑源签出,这样整个应用程序就可以在原地编辑,所有包中的更改都可以轻松地推回到原始的git服务器。此外,应用程序需要由非开发人员作为传统包进行部署。

假设我有一个顶级包,它有一个setup.py,看起来像这样:

# ...
setup(name="Foo",
# ...
url="https://mygitserver.com/Foo",
install_requires=[
"Bar>=0.0.1",
],
dependency_links=["git+https://mygitserver.com/Bar@0.0.1#egg=Bar-0.0.1",],
# ...
)

我可以使用以下命令将此包安装为可编辑

pip3 install -e git+https://git@mygitserver.com/Foo#egg=Foo --process-dependency-links

这将创建一个目录src/foo,并使用从git服务器签出的Foo的源代码填充该目录。这很好。

依赖项Bar也从git服务器中检索,但它未安装为可编辑pip3 freeze只是将其显示为一个名为Bar的常规安装包,因此gitURL也会丢失。

有没有办法以某种方式进行干预,并让pip安装一些(不一定是所有(可编辑的依赖项?或者在这种情况下我需要使用requirements.txt吗?如果我必须使用requirements.txt,我如何确保这些依赖项在由非开发人员部署时正常安装?

我知道pip>10是为了取消dependency_links,但目前我还是停留在pip9.0.2。我使用的是Python 3.5。我的目标是一个嵌入式平台,它很难改变这些,所以这些版本是我目前正在使用的。如果pip>=10可以在这个领域做一些新的事情来帮助我,那么我可以考虑升级,在这个系统上做这件事并不简单。

您可以先简单地使用pip install -e <Bar-URL>,然后在安装Foo时,pip会发现依赖项已经安装。两者都可以编辑。

最新更新