我是Python的新手。如果我想打包Java程序,则可以使用Maven定义依赖项并构建一个Jar,其中包括Mac上所需的所有库,也可以使用Windows cmd控制台运行该JAR,仅在该Windows机器上安装了Java,即{ {1}}
我想知道如何通过使用一些第三方库的Python程序实现相同的目标。我搜索了诸如滚轮之类的一些选项,但仍然对它们的作用感到困惑。您可以帮忙给我更多指导吗?我正在使用PyCharm作为IDE。非常感谢。
答案 0 :(得分:1)
对于最接近的.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上将无法使用。实际上,即使您在Windows上编译C扩展,也通常无法从zip存档中执行。
如果您确实需要这样的二进制文件,建议您尝试使用pex之类的第三方工具。