Кроссплатформенный Pipenv.lock

Я создаю кроссплатформенное приложение Python, используя pipenv(насколько я понимаю poetry тоже имеет такую ​​же проблему) для управления зависимостями и виртуальными окружениями.

При попытке собрать приложение на Windows и Linux я заметил, что Pipenv.lock зависит от платформы.

Например, я создаю проект на Windows и добавляю pytest, в нем есть colorama с участием "markers": "sys_platform == 'win32'" в файле блокировки. Но при изменении файла блокировки в Linux, например при добавлении новой библиотеки, эта зависимость исчезнет.

Вот полный вывод для обеих систем и diff https://gist.github.com/AlexP11223/6457fd4c98272c526c855c63088c00d4

Это должно работать так? Если да, каков наилучший способ справиться с этим? Есть ли лучшее решение, чем просто фиксация файлов блокировки для всех платформ в репозитории Git (например, Pipenv-win.lock, Pipenv-linux.lock) и переименование одного из них в Pipenv.lock когда строишь?

1 ответ

https://github.com/pypa/pipenv/issues/3902

Разработчик Pipenv предложил добавить --keep-outdated вариант. Кажется, работает, по крайней мере, в этом простом примере.

В настоящее время он не работает в последней версии (2018.11.26), только в основной ветке Git-репо.

UPD: похоже, я был неправ в поэзии, и по умолчанию он обрабатывает это правильно https://gist.github.com/AlexP11223/afbe247175efdcc897930d8c6ab04184

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