Я ищу эквивалент uber-jar в мире python.
- Мне нужно распространить пакет Python на все три основные платформы (Windows, Mac, Linux).
- Он должен быть связан со всеми его зависимостями, так как на целевой платформе может отсутствовать Интернет.
Это должен быть кроссплатформенный дистрибутив, поэтому мне не нужно собирать его для нескольких целей. То есть я должен иметь возможность запускать его на всех платформах следующим образом:
python package.ext
Вы можете предположить, что пакет представляет собой чистый python (без собственного кода). Есть ли что-нибудь, что удовлетворяет этим требованиям?
Я знаю следующие варианты, каждый из которых имеет недостатки:
.whl
пакеты требуютpip
для установки.- Я не знаю, как создать
.egg
, содержащий все зависимости пакета. - Этот PEP: http://legacy.python.org/dev/peps/pep-0441 показывает, что python поддерживает запуск
.zip
файлов, но AFAICT, лучшим инструментом для создания такого zip является pex (https://github.com/pantsbuild/pex), который, я думаю, не поддерживает Windows