Для ближайшего эквивалента .jar вам нужно приложение Python ZIP. Для этого потребуется только подходящая версия Python, установленная на компьютере пользователя. https://docs.python.org/3/library/zipapp.html#creating-standalone-applications-with-zipapp
По сути, вы можете использовать pip (менеджер пакетов Python), чтобы установить список зависимостей, которые вы перечисляете, в каталог, который вы заархивируете.
$ python -m pip install foopackage barpackage>=1.0 --target source
$ python -m zipapp source -m "source.foomodule:main" # use -c to compress
Где source
- это имя вашего исходного каталога, содержащего вашу программу, а main
- это имя вашей точки входа (в foomodule
). Это создаст один файл .pyz, который является эквивалентом Python .jar.
Затем вы можете запустить его на компьютере с Windows с помощью
> py source.pyz
Где py
- это либо ваша программа запуска Python, либо соответствующий исполняемый файл Python, который вы установили.
Если у вас есть requirements.txt
, у вас могут быть зависимости от установки pip до его архивирования.
$ python -m pip install -r requirements.txt --target source
(Если вы этого не сделаете, вы можете попробовать сгенерировать один из вывода pip freeze
, но это все , которое вы установили, что может быть слишком много.)
Конечно, все это предполагает, что ваши зависимости - чистый Python. Если у вас есть какой-то пакет с скомпилированным двоичным файлом для macOS, он не будет работать в Windows. Фактически, расширения C обычно не могут быть выполнены изнутри zip-архива, даже если вы компилируете их в Windows.
Если вам нужны такие бинарные файлы, я бы рекомендовал попробовать сторонний инструмент, такой как pex .