我是 Python 新手。如果我想打包一个 Java 程序,我可以使用 Maven 定义依赖项并构建一个 Jar,其中包括 Mac 上所需的所有库,也可以使用 Windows cmd 控制台运行,只需要在该 Windows 计算机上安装 java 即 java -myProgram.jar
我想知道如何使用使用一些第三方库的 Python 程序实现相同的效果。我搜索了一些选项,例如轮子,但仍然对它们的作用感到困惑。您能帮我提供更多这方面的指导吗?我使用 PyCharm 作为 IDE。非常感谢。
最佳答案
对于最接近的 .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 install 依赖项。
$ python -m pip install -r requirements.txt --target source
(如果不这样做,您可以尝试从 pip freeze
的输出中生成一个,但这就是您已安装的所有内容,可能太多了。)
当然,这一切都假设您的依赖项是纯 Python。如果您有一些包含适用于 macOS 的已编译二进制文件的软件包,则它无法在 Windows 上运行。事实上,C 扩展通常无法从 zip 存档内部执行,即使您在 Windows 上编译它们也是如此。
如果您确实需要这样的二进制文件,我建议尝试使用第三方工具,例如 pex .
关于python - 在 Mac 上生成等效的 python "jar"以在 Windows 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54001240/