将简单的python程序转换为独立的Windows可执行文件

时间:2015-08-18 13:37:41

标签: python compilation executable single-file

好的,我写了一个名为Coloriffic的愚蠢的简单小python程序,它允许你调整红色,绿色和蓝色的值并显示结果颜色。我使用Pygame来实现这一目标。

然后我四处寻找如何将其变成一个简单的程序,我可以给别人,而不需要安装Python或Pygame。在阅读了几个选项(以及这个网站上的几条建议)之后,似乎大多数人都推荐了cx_freeze,所以我下载了WHL并安装了它。我构建了一个setup.py脚本,这并不难,因为Coloriffic没有图像或其他外部文件,而且是一个非常简单的程序。

当我运行setup.py时,它工作正常!它创建了一个运行得很好的Coloroffic.exe。问题是,它还创建了一个包含一百个其他支持文件的目录。我尝试创建一个MSI安装程序,它确实给了我一个可执行文件,但是在运行时只是将相同的100个文件放在另一个目录中。

有没有办法把我完全简单的Coloriffic.py程序转换成一个单独的Windows exe文件,它包含了所需的一切,并且不需要安装?我想弄清楚,如果在Python中我可以使用我的.py程序并将它们编译成单个可执行文件而不创建支持文件目录?

如果是这样,我该怎么做?

感谢。

编辑:不想让它成为闭源,只是想在一个文件中收集所有内容。此外,我读到“py2exe将生成你想要的exe文件,但你需要在你将要使用你的新exe的机器上使用相同版本的MSVCR90.dll” - 这可能是一个问题,除非所有Windows机器从7开始有这个文件都在同一个版本?这就是我要求这是第一个创建完全独立EXE文件的原因。我也看到有人推荐cx_freeze,但要么他们不明白它不会创建单个文件,要么不明白如何制作它。有没有办法让cx_freeze创建一个独立的exe?

我想我可以希望 MSVCR90.dll依赖已被废除并且尝试 py2exe - 但是在我走这条路之前我会喜欢一些建议这是错误的。

感谢您提出的建议和其他已回答问题的链接,但我仍然没有看到对此问题的直接答案?

EDIT2:还有一点需要注意,当我使用cx_freeze创建可执行文件,然后运行Coloriffic.exe时,首先它会创建一个看起来像黑色Dos-box窗口,然后是第二个窗口弹出我的程序。我还希望可执行文件只启动一个窗口,我的程序,没有Dos类型窗口首先出现并留在程序窗口后面。感谢。

1 个答案:

答案 0 :(得分:0)

尝试使用Py2exe,这是一种非常简单快捷的方法: Py2exe Tutorial

不安装

exe,但它也在同一目录中创建支持文件