如何从Python 3脚本创建独立的可执行文件?

时间:2013-04-27 02:02:36

标签: python compiler-construction python-3.x cx-freeze

我最近制作了一个在Python 3.3中使用Tkinter的程序。我想将程序分发为一个不需要安装的简单可执行文件。我有很多使用cx_freeze将脚本编译成可执行文件的经验,但遗憾的是它不会生成独立的应用程序,并且它需要各种DLL和pyd文件位于它生成的可执行文件的当前工作目录中。我也研究了其他打包程序,如py2exe和pyinstaller,但不幸的是它们不支持Python 3.x.那么,有没有人知道如何将Python 3.3脚本编译成独立的可执行文件而没有任何依赖?

谢谢!

更新:我编写了一个python脚本来移动exe文件cx_freeze生成的所有DLL和pyd文件。虽然这不是一个非常“干净”的解决方案,但它确实适用于常规的python脚本。问题在于我导入了诸如socket或tkinter之类的模块,并且可执行文件不知道在哪里查找它们,所以我收到错误:

ImportError: No module named '_socket'

如果有人知道如何解决这个问题 - 可能通过更改可执行文件查找其依赖项的位置 - 这将是非常好的,再次感谢!

1 个答案:

答案 0 :(得分:1)

考虑将问题定义更改为“如何将DLL烘焙到Windows可执行文件中?”如果您可以通过这种方式重新构建问题,我们就可以应用此处列出的解决方案: how to bundle dependencies in exe