我有一个内部的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",],
# ...
)
我可以使用以下命令将此软件包安装为可编辑:
^{pr2}$这将创建一个目录src/foo
,并用从git服务器签出的Foo
的源代码填充它。这很好。在
依赖项Bar
也从git服务器检索,但它不是作为可编辑的安装的。pip3 freeze
只是将其显示为一个名为Bar
的常规安装包,因此git URL也会丢失。在
有没有一种方法可以干预并让pip安装一些(不一定是所有)依赖项作为可编辑的?或者在这种情况下我需要使用requirements.txt
?如果我必须使用requirements.txt
,那么在非开发人员部署时,如何确保这些依赖项正常安装?在
我知道pip>;10意味着要取消dependency_links
,但目前我还只能使用pip9.0.2。我使用的是python3.5。我的目标是一个嵌入式平台,这个平台很难改变这些,所以这些版本是我目前正在处理的。如果pip>;=10可以在这方面做一些新的工作,那么我可以考虑升级,在这个系统上做这件事不是件小事。在
您只需在
pip install -e <Bar-URL>
之前安装Foo
时,pip会认为依赖关系已经安装。两者都可以编辑。在相关问题 更多 >
编程相关推荐