Пропустить неудачную установку пакета и установить альтернативу с помощью pip - PullRequest
0 голосов
/ 10 сентября 2018

Допустим, я получил 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.

Есть ли способ предотвратить сбой pip, если он не находит определенный пакети установить вместо него альтернативный пакет?

Как-то так (в псевдокоде):

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
...