最近需要将python代码打包成exe,打包过程中出现了一些问题,特此记录,也顺便记录下cx_Freeze使用方法,留待日后查看。
首先进行下载,需要注意对应的版本号,比如本人使用python3.4,64位,故下载cx_Freeze-4.3.3.win-amd64-py3.4.msi这个版本,下载后在python
安装目录下就可以看到cxfreeze,然后配置好环境变量就可以使用了,如图:
cxfreeze
有两种打包方式,一是cxfreeze script
,这种方式很简单,只要打开cmd
,cd
到python
文件所在目录,比如文件名为hello.py
,执行:
cxfreeze hello.py --target-dir dist
如果要生成可安装包文件,就要用到这种打包方式,名为distutils setup script
,这种方式必须创建一个setup.py
文件,可以使用官方提供的:
import sysfrom cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}
# GUI applications require a different base on Windows (the default is for a console application).
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "guifoo",
version = "0.1",
description = "My GUI application!",
options = {"build_exe": build_exe_options},
executables = [Executable("guifoo.py", base=base)]
)
或者在cmd
窗口输入cxfreeze-quickstart
也可以自动生成setup.py
,如下:
接下来只要到python文件的目录,运行
python setup.py bdist_msi
如果想更加详细了解操作方法,可以查看官方文档
官方操作文档:查看
问题
可是我在使用cxfreeze hello.py --target-dir dist
后,发现生成的exe文件无法运行,总是一闪而过,心好累,一番谷歌,找到如下解决办法:
1、去这个网站下载cx_Freeze(注意32/64位)
cx_Freeze‑4.3.4‑cp34‑none‑win64.whl
2、把扩展名whl,改为zip进行解压
4、然后进入C:\Python34\Lib\site-packages
,请参考各自python安装路径,删除cx_Freeze相关的包,我这里有两个,全部都删除掉
5、然后将cx_Freeze‑4.3.4‑cp34‑none‑win64
目录下的文件夹全部复制到C:\Python34\Lib\site-packages
,如图:
最后进行打包,cxfreeze hello.py --target-dir dist
,终于可以运行了,如果想打包成一个exe文件的话,可以将dist文件夹下面的文件全部创建自解压文件,不会的看这里。
这样就解决了,希望能有帮助。
网友评论