Установка зависимостей для платформы через 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.)