神刀安全网

cx_Freeze打包py文件

最近需要将python代码打包成exe,打包过程中出现了一些问题,特此记录,也顺便记录下cx_Freeze使用方法,留待日后查看。

首先进行下载,需要注意对应的版本号,比如本人使用python3.4,64位,故下载cx_Freeze-4.3.3.win-amd64-py3.4.msi这个版本,下载后在python安装目录下就可以看到cxfreeze,然后配置好环境变量就可以使用了,如图:

cx_Freeze打包py文件

目录.png

cx_Freeze打包py文件

cxfreeze.png

cxfreeze有两种打包方式,一是cxfreeze script,这种方式很简单,只要打开cmdcdpython文件所在目录,比如文件名为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,如下:

cx_Freeze打包py文件

setup.py.png

接下来只要到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,如图:

cx_Freeze打包py文件

C:/Python34/Lib/site-packages.png

最后进行打包,cxfreeze hello.py --target-dir dist,终于可以运行了,如果想打包成一个exe文件的话,可以将dist文件夹下面的文件全部创建自解压文件,不会的看这里

这样就解决了,希望能有帮助。

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » cx_Freeze打包py文件

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址