解决cx_freeze的import error 问题

最近在用PyQT写一个东西,由于最终要在Windows平台使用,无可避免的涉及到程序打包问题,这样的工具有很多,最著名的要数py2exe,不过据说对PyQt支持不太好,我也没试过。后来在CPUG里看到有人提到了cx_Freeze,我就试了下,真心好用啊,我拿我的程序试了试,经过很简单配置就ok了,具体如下,

  • 建立一个setup.py文件,内容如下:
 from cx_Freeze import setup, Executable

setup(
         name = "SunP2P",
         version = "0.1",
         description = "SunP2P 1.0",
         executables = [Executable("main.py",base = 'Win32GUI')])

  • 在当前路径运行 python setup.py build ,貌似生成exe必须在win平台。
刚开始时没啥问题,可是后来增加了功能后,提示import error: no module named atexit


经过一番探索,我在main.py中加入“import atexit”就解决了,而且找到了这个页面,如果有其他的import error,对号入座即可。

1,900 views, since 2012-01-27