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

如何从Python 3脚本创建独立的可执行文件?,python,compiler-construction,python-3.x,cx-freeze,Python,Compiler Construction,Python 3.x,Cx Freeze,我最近制作了一个程序,在Python3.3中使用Tkinter。我想把这个程序作为一个简单的可执行文件分发,不需要安装。我有很多使用cx_freeze将脚本编译成可执行文件的经验,但不幸的是,它不能生成独立的应用程序,而且它需要各种DLL和pyd文件位于它生成的可执行文件的当前工作目录中。我还研究了其他打包程序,如py2exe和pyinstaller,但不幸的是它们不支持Python3.x。那么,有人知道我如何将Python 3.3脚本编译成一个独立的可执行文件,而不需要任何依赖项吗 谢谢 更新

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

谢谢

更新:我编写了一个python脚本,用于将所有DLL和pyd文件移动到exe文件cx\u中。虽然这不是一个非常“干净”的解决方案,但它可以与常规python脚本一起使用。问题在于,当我导入socket或tkinter等模块时,可执行文件不知道在何处查找它们,因此出现错误:

ImportError: No module named '_socket'

如果有人知道我如何解决这个问题-也许通过更改可执行文件查找其依赖项的位置-那就太好了,再次感谢

考虑将您的问题定义更改为“如何将DLL烘焙到Windows可执行文件中?”如果您可以用这种方式重新定义问题,那么我们可以应用如下所列的解决方案:

我也尝试过这种方法,但正如我所提到的,我想要一个真正独立的可执行文件,不需要将程序解压缩到临时位置。不管怎样,还是谢谢你。谁在乎这些东西会不会被拉到一个临时的位置呢?这真的很重要吗?若然,原因为何?老实说,我认为这种解决方案是合适的,但似乎您还有其他要求。您的用户真的会注意到或关心这些实现细节吗?这不是因为用户注意到这个过程,而是因为其他几个原因。最主要的一点是应用程序相当大,需要一段时间来解压/重新压缩。如果每次启动时我都让它经历这个过程,它可能会严重影响它的启动时间。如果我将程序永久解压到一个临时位置,那么这本质上相当于需要一个安装过程,这是我的目标,以避免