为Pipenv提供不同的源或git url用于生产和开发

2024-06-28 11:26:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我们使用Pipenv和{a2}来管理Python包需求。我们使用私有GitLab服务器来管理我们的代码,包括作为包的源,例如通过:

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

但是,代码被部署到一个单独的Prod环境中,该环境可以访问internet(因此可以关闭pypi包),但是不能访问gitlab服务器。在

我们提出的第一个解决方案是在Prod环境中镜像包回购。然而,虽然Pipenv允许在包索引源it doesn't allow them in git urls in packages中使用环境变量,所以我们不能用这种方式在每个环境中定义不同的基URL。在

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

^{pr2}$

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

如何为dev中的包指定git repo源,为生产中的包指定不同的(index或git repo)源?在


Tags: 代码indevgit服务器a2环境packages