对于最接近的 .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。