【发布时间】:2018-08-03 07:32:16
【问题描述】:
我有一个内部 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 的常规安装包,因此 git URL 也丢失了。
有没有办法以某种方式进行干预并让 pip 安装一些(不一定是全部)依赖项作为可编辑的?还是在这种情况下我需要使用requirements.txt?如果我必须使用requirements.txt,在非开发者部署时,如何确保这些依赖项正常安装?
我知道 pip > 10 意味着要取消 dependency_links 但是目前我仍然坚持使用 pip 9.0.2。我正在使用 Python 3.5。我的目标是一个很难改变这些的嵌入式平台,所以这些版本是我目前正在使用的。如果 pip >= 10 可以在这方面做一些新的帮助,那么我可以考虑升级,在这个系统上做这件事并不简单。
【问题讨论】:
标签: python git deployment pip package