4

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

谢谢!

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

ImportError: No module named '_socket'

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

4

1 回答 1

1

考虑将您的问题定义更改为“如何将 DLL 烘焙到 Windows 可执行文件中?” 如果您可以通过这种方式重新构建问题,那么我们可以应用此处列出的解决方案: 如何在 exe 中捆绑依赖项

于 2013-04-27T04:13:35.057 回答