【发布时间】:2013-04-27 02:02:36
【问题描述】:
我最近编写了一个在 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'
如果有人知道我该如何解决这个问题 - 可能是通过更改可执行文件查找其依赖项的位置 - 那就太好了,再次感谢!
【问题讨论】:
标签: python compiler-construction python-3.x cx-freeze