python3.4 +pyqt5 +cx_freeze 打包成exe

1、安装cx_freeze
  通过cx_Freeze-4.3.4-cp34-none-win_amd64.whl安装
安装方式:
cmd切换目录:运行 pip3 install cx_Freeze-4.3.4-cp34-none-win_amd64.whl



2、编写setup.py文件
#!/usr/bin/env python

import sys
from cx_Freeze  import setup, Executable
base  None
if sys.platform  ==  'win32' :
    base  'Win32GUI'

packages  = [
    'os'
]

options  {
    'build_exe' { 'packages' packages,  'include_files' : [ 'setup.properties' ]'icon' 'bus32.ico',
                  "includes" "atexit" },
}

executables  = [Executable ( 'install.py', base =base, targetName = 'installpay.exe' ) ]

setup (
    name = "PayInstall",
    version = "1.0.0",
    url = 'http://pay.dreams.edu.cn/',
    author = 'liuguanghui',
    author_email = 'sunsray@163.com',
    description = "Install for Pay PlatForm",
    options =options,
    executables =executables, requires =[ 'PyQt5' ]
)

3、cmd运行:python3 setup build或者 python setup.py bdist_msi打包
4、在其他机器上运行报错:竟然冒出个X:



费尽力气最后找出原因(stackoverflow):

 上面提出了首先查看这两个dll:QWindows.DLL and libEGL.dll h是否在生成的文件目录里存在

 然后: includes': ['atexit']这个必须有
mport sys
from cx_Freeze import setup, Executable

base = None
if sys.platform == 'win32':
    base = 'Win32GUI'

setup(name = 'spamandeggs',
      version = '0.0.1',
      executables = [Executable('spamandeggs.pyw', base=base)],
      options = {'build_exe': {'includes': ['atexit']}})

但发现以上都没解决,
从最后的回答解决了!!将msvcp100.dll拷贝到生成目录里即可

I got the same error today, and finally found a solution for me after a whole day of searching. I copied msvcp100.dll, and everything works.

wft

使用cx_freeze可以将PyQt5程序打包为可执行文件,使其在没有Python环境的机器上也能运行。 首先,确保已经安装了cx_freeze库。可以通过pip命令进行安装,如:pip install cx_Freeze。 然后在PyQt5的程序文件所在目录下,创建一个名为setup.py的脚本文件。 在setup.py文件中,需要导入cx_Freeze的一些模块,如: ```python from cx_Freeze import setup, Executable ``` 接下来,需要定义一些程序的信息,例如程序的名称、版本号、作者等等。同时,还需要指定要打包PyQt5程序的入口文件,如: ```python exe = Executable( script="main.py", base="Win32GUI", # 使用Windows的图形界面 icon="icon.ico" # 可选,设置程序的图标 ) ``` 再然后,可以定义一些打包的选项,例如需要排除的模块、包含的文件等等。例如: ```python options = { "build_exe": { "packages": ["pyqt5", "sys"], "excludes": ["tkinter"], "include_files": ["resources/"] # 将资源文件夹一同打包 } } ``` 最后,在setup函数中,指定一些打包的参数,例如程序的名称、版本号、作者等等。同时,还需要指定要打包的文件及其依赖项,如: ```python setup( name="MyApp", version="1.0", author="My Name", description="My PyQt5 app", executables=[exe], options=options ) ``` 保存并关闭setup.py文件。 在命令行中,切换到setup.py所在的目录,并执行以下命令: ```python python setup.py build ``` 执行完毕后,在build目录中会生一个可执行文件,就是我们打包好的PyQt5程序。 需要注意的是,由于打包时会将PyQt5库及其依赖项一同打包,所以打包后的文件可能会比较大。如有需要,可以使用upx等压缩工具进行进一步压缩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值