Python 3.x 跳过安装失败的程序包,并使用pip安装替代程序

Python 3.x 跳过安装失败的程序包,并使用pip安装替代程序,python-3.x,pip,requirements.txt,Python 3.x,Pip,Requirements.txt,假设我得到了一个requirements.txt,其中包含以下依赖项: git+ssh://git@mygithost.de/my_project_group/package_a.git alabaster==0.7.11 Babel==2.6.0 ... xlrd==1.1.0 pytest pytest-cov 在使用公司代理的机器上安装此依赖项可以正常工作,因为我有一个VPN隧道,可以连接到mygithost.de 我工作场所的其他人没有权限使用这个git存储库,因此安装在第一个包时就

假设我得到了一个
requirements.txt
,其中包含以下依赖项:

git+ssh://git@mygithost.de/my_project_group/package_a.git

alabaster==0.7.11
Babel==2.6.0
...
xlrd==1.1.0
pytest
pytest-cov
在使用公司代理的机器上安装此依赖项可以正常工作,因为我有一个VPN隧道,可以连接到
mygithost.de

我工作场所的其他人没有权限使用这个git存储库,因此安装在第一个包时就失败了。 因此,我们计划在一个单独的SVN服务器上托管我们依赖的包,这里的每个人都可以访问该服务器

现在是我的实际问题。我们不想处理两个单独的需求文件,其中一个指向git,另一个指向svn repo

如果pip没有找到某个包并安装另一个包,有没有办法防止它失败

某种程度上类似于(伪代码):


上下文:您自己想要使用本地存储库而不是通用存储库的原因是什么?我所说的依赖关系不是我机器上的本地git存储库,而是托管在gitlab实例上,它不是所有机器都可以访问的,只有安装了vpn隧道的机器才能访问。那些无法访问gitlab的用户应该从svn服务器安装相同的包,每个人都可以访问该包。(软件包在我们的git服务器上有一个版本的精确副本)既然你说每个人都可以访问SVN,为什么不一直使用它?这不是我要问的:为什么你不能使用通用存储库?嗯,我想问题是关于奇怪的设置。例如,为什么您不能自己直接处理SVN存储库?按照目前的方式,您必须在两个地方维护同一个包(我认为这比使用两个需求文件更难)。或者您有一个开发(git)和发布(svn)版本,但是无论如何,您都应该从发布版本中提取,以测试使用此软件包的其他软件包。
try install this:
    git+ssh://git@mygithost.de/my_project_group/package_a.git
if it fails install this instead:
    svn+http://.....

alabaster==0.7.11
Babel==2.6.0
...
xlrd==1.1.0
pytest
pytest-cov