在Python应用程序中嵌入Python解释器

8
我正在寻找一种方法,将Python解释器与我的应用程序(也是用Python编写的)一起打包,这样就不需要在机器上安装Python。
我搜索了谷歌,并发现了很多关于如何在各种语言中嵌入Python解释器的结果,但没有针对Python本身编写的应用程序的内容……我不需要像cx_freeze一样“隐藏”我的代码或制作二进制文件,我只是希望我的用户不必安装Python就能使用我的应用程序。

1
重复:https://dev59.com/_nVD5IYBdhLWcg3wDHDm,https://dev59.com/zHVD5IYBdhLWcg3wXaYd,https://dev59.com/qXI-5IYBdhLWcg3wPF12等。 - S.Lott
最后是的,但起初我并不打算将我的应用程序冻结为二进制文件,即使最终看起来它是分发我的应用程序最简单的解决方案。 - mdeous
5个回答

9

如果要在Windows机器上进行分发,请考虑使用py2exe

py2exe is a Python Distutils extension which converts Python scripts 
into executable Windows programs, able to run without requiring a 
Python installation

对于MacIntosh系统,有 py2app (但我不熟悉它)。
而对于Windows和Linux系统,有 bbfreeze 或者 pyinstaller

谢谢,我意识到尽管我想将我的源代码与我的应用程序一起提供,但最简单的方法(如Ignacio所说)仍然是将我的应用程序冻结为二进制文件,并随附源代码。 - mdeous
是的,采用这种方法,您既拥有独立的二进制文件,又可以使用源代码在解释器中运行,如果用户希望这样做或者决定修改程序,都可以实现。 - mjv

2

为了启动Python,您需要某种可执行文件。最好使用已经被冻结到您的应用程序中的文件。

另一种选择是将可执行文件、库和所需的标准库部分复制到一个私有目录中,并针对您的应用程序调用该目录。


2
使用类似cx_freeze或py2exe这样的工具制作冻结二进制文件可能是最简单的方法。这样,您只需要分发可执行文件即可。我知道您可能不想分发二进制文件,但如果这是一个问题,您可以让用户选择下载源代码并从解释器中运行。

0

对于Windows系统:py2exe

对于Linux系统:Freeze

完全透明化披露:我只是读过这些内容,从未使用过。或许有人用过可以发表一下评论?


0

看一下 http://www.python-packager.com,它是一个免费的网络服务,用于构建基于pyinstaller的可重定向Python二进制文件。我已经使用它来构建Windows应用程序,非常易于使用,也适用于GUI应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接