为Pipenv提供不同的来源或git网址进行生产和开发

时间:2018-11-15 15:01:23

标签: python pipenv

我们正在使用PipenvPipfiles来管理Python软件包要求。我们使用私人的GitLab服务器来管理我们的代码,包括作为软件包的来源,例如通过:

ourpkg = {ref = "master", git = "ssh://git@gitlab.company:/ourpkg.git"}

但是,代码已部署到可以访问Internet的单独的Prod环境中(因此可以拉下pypi包),但是无法访问我们的gitlab服务器。

我们提出的第一个解决方案是在Prod环境中镜像软件包仓库。但是,尽管Pipenv允许在包索引源中使用环境变量doesn't allow them in git urls in packages,但我们不能以此方式在每个环境中定义不同的基本URL。

我们提出的第二个解决方案是将程序包托管在私有程序包索引上,并将其用作Prod环境中的源。然后在[packages]下指定prod链接,并在[dev-packages]下指定gitlab git urls。

[[source]]
url = "https://pypi.prodenvironment/
name = "prodindex"

[packages]
ourpkg = {version = "*", index = "prodindex"}

[dev-packages]
ourpkg = {ref = "master", git = "ssh://git@gitlab.company:/ourpkg.git"}

但是,由于[packages]要求优先于[dev-packages],并且Pipenv不允许deploy-only requirements,因此在dev中安装此操作失败。

我们如何在dev中为软件包指定 git repo 源,而在生产环境中为软件包指定其他(index或git repo)源?

0 个答案:

没有答案