Установка зависимостей для платформы через PIP

Я использую LDTP в своих тестах, и он поставляется в виде двух разных пакетов для двух разных платформ:

  • PyAtom на Mac OS;
  • LDTP в Linux.

Так получилось, что оба они имеют специфичные для платформы двоичные файлы и не могут быть установлены на других ОС. Мой вопрос, как мне сделать мой requirements.txt установить пакеты в зависимости от платформы?

В идеале это должно быть что-то вроде:

mac:
  -e git+https://github.com/pyatom/pyatom.git@1ca0c6a0343000286a328268899d1aab376d8e82#egg=atomac-master
linux:
  ldtp==3.5.0
holmium.core==0.7.6
pytest==2.5.2
selenium==2.42.1

2 ответа

Возможно вы можете создать файл для каждой платформы:

requirements-windows.txt
requirements-linux.txt
requirements-mac.txt

а затем запустить, например:

pip install -r requirements-mac.txt

если хочешь...

По ссылке в комментарии @wim (https://www.python.org/dev/peps/pep-0508/#environment-markers) находимsys_platformможет сделать трюк.

      -e git+https://github.com/...#egg=atomac-master;sys_platform=="darwin"
ldtp==3.5.0;sys_platform!="darwin"
holmium.core==0.7.6
pytest==2.5.2
selenium==2.42.1

Аналогичные варианты существуют для разных версий Python, CPython и Jython и многих других.

(По историческим причинам, которые я сейчас не могу вспомнить, «дарвин» часто называют MacOS.)

Другие вопросы по тегам