【python】使用cx_Freeze将.py文件打包成exe文件

将写好的.py脚本放到其他WindowsPC上运行,该PC不需要安装解释器,想着可以打包成exe

网上搜索了一下,将Python程序生成exe程序目前流行这三种:
cx_freeze
py2exe
PyInstaller

后面两种支持python3有些问题,虽然个人目前使用的是python2.7,但是选择cx_freeze来将.py打包成exe

安装cx_freeze

cx_freeze下载链接:https://sourceforge.net/projects/cx-freeze/files/4.3.3/

【python】使用cx_Freeze将.py文件打包成exe文件_第1张图片

因为当前系统是64bit而且python2.7,故选择下载cx_Freeze-4.3.3.win-amd64-py2.7.msi文件

下载成功后,进行安装

在选择安装路径的界面
【python】使用cx_Freeze将.py文件打包成exe文件_第2张图片

选择另外路径或者选择安装在python的路径下,提示安装成功

检查是否安装成功,运行cmd,切换到安装的路径下或者python的安装路径下的Scripts目录,运行 cxfreeze -h
提示:系统找不到指定的路径

网上搜索解决方法,都说是确认环境变量后,修改python安装路径下\Scripts\cxfreeze.bat文件,但是并没有找到该文件,又尝试更换路径安装了几次均不成功

在找cxfreeze.bat文件时,看到python的\Scripts目录下的pip文件,想着是否能使用pip进行cxfreeze的安装

运行pip install cx_freeze

运行结果为:

【python】使用cx_Freeze将.py文件打包成exe文件_第3张图片

运行cxfreeze 测试是否安装成功,又提示找不到文件
按照网上的说法,会在python安装路径的Scripts目录下生成一个cxfreeze.bat文件,但是我的目录下却仍然没有这个.bat文件,倒是有其他的三个文件,分别为:
cxfreeze文件、cxfreeze-postinstall文件、cxfreeze-quickstart文件

贴吧上看到有人说到,需要用Python运行该目录下的 cxfreeze-postinstall 文件才能完成安装

运行该命令

python cxfreeze-postinstall

该目录下果然出现了相应的.bat文件

【python】使用cx_Freeze将.py文件打包成exe文件_第4张图片

再测试一下是否安装成功

【python】使用cx_Freeze将.py文件打包成exe文件_第5张图片

搞定

将.py文件打包成exe文件

在python安装目录Script目录下运行cmd
运行命令:

cxfreeze C:\Users\llz\PycharmProjects\HelloWord\restartRemote.py --target-dir dist D:\pyproject

C:\Users\llz\PycharmProjects\HelloWord\restartRemote.py :要打包的主文件、启动文件
D:\pyproject :目标文件夹,打包后会生成dist目录,里面就有打包后的可执行文件
注意:

  • 只能指定一个要打包的模块,也就是启动模块
  • 发布后,可执行文件执行路径不能有中文(最好也不要有空格)
  • 启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果

    if name == “main“:
    main()

打包成功:

【python】使用cx_Freeze将.py文件打包成exe文件_第6张图片

打包后的目录为:

【python】使用cx_Freeze将.py文件打包成exe文件_第7张图片

注意:

  • 将exe放到其他机子上运行,弹出“找不到msvcr100.dll“
    手动将”msvcr100.dll“拷贝到dist目录下即可
  • 要去掉exe里的后面黑色控制台窗口就在前面的命令改成:
    cxfreeze C:\Users\restartRemote.py (需打包文件路径) –target-dir D:\pyproject (存放exe的目标文件夹路径)–base-name=win32gui

你可能感兴趣的:(python)