• 使用cx_Freeze 将python3代码打包成.exe程序


    在这里分享一下如何在py3下使用cx_Freeze打包pyqt5的程序
    首先吐槽下,深深鄙视一下百度,各种百度各种没有,之前我在py2.7下使用pyqt4开发过一个小软件,用的是py2exe进行打包的,可是py2exe貌似不支持py3,各种恶心,已经搞了好久了,今天早上google了一下终于搞定了

    一、安装

    二、打包程序

    • 安装之后在windows黑窗口(就是win下面的dos窗口)执行下面步骤:

      • 首先先进入程序所在的目录

      • 执行下面命令进行python程序打包
        注:这里需要注意的一点是被打包的py程序中不要存在 if name == "main",否则cxfreeze不识别

        cxfreeze --init-script=需要打包主程序的绝对路径index.py index.py
        
      • 打包完之后会在当前所在目录下面生成一个dist的目录,在黑窗口中进入该目录,然后直接输入index.exe(具体的名字以打包的文件为准)就可以执行该exe程序了

    
    ### 三、解决报错:
    - 我第一次运行index.exe的时候出现了报错信息
    	
    	```python
    	AttributeError: 'module' object has no attribute '_fix_up_module'
    	```
    
    - 各种百度各种谷歌,说这个是官方的一个bug,需要安装cx_Freeze4.3.4的补丁包,将cx_Freeze4.3.3升级成4.3.4,具体步骤如下:
    - 下载补丁包
    
    	[补丁包下载地址](http://www.lfd.uci.edu/~gohlke/pythonlibs/6kbpejrn/cx_Freeze-4.3.4-cp34-none-win_amd64.whl)
    
    - 进入该补丁包的本地下载目录,然后使用pip进行安装
    
    	```python
    	pip install cx_Freeze-4.3.4-cp34-none-win_amd64.whl
    	```
    - 补丁安装完之后再回到第二步进行打包程序就可以了
    
    ### 四、看下我打包之后的几个截图
    - 打包程序目录截图
    ![](http://images.cnblogs.com/cnblogs_com/CongZhang/848363/o_1.png)
    
    - 双击index的运行程序,效果如下
    ![](http://images.cnblogs.com/cnblogs_com/CongZhang/848363/o_2.png)
    
    ##### 有个黑窗口,这个在后面我学习到了再进行解决,这会要收拾东西上班去了
  • 相关阅读:
    缩略图架构实现
    基于GDAL实现的PCA变换(主成分分析)
    【OpenGL】GLSL中的函数和子程序(subroutines)
    【OpenGL】关于OpenGL中Bind函数的理解
    使用MTL库求解矩阵特征值和特征向量
    C#键盘事件列表
    C#用 SendKyes 结合 Process 或 API FindWindow、SendMessage(PostMessage) 等控制外部程序
    什么是句柄
    在DLL中产生对话框的方法一(Win32 DLL)
    C# 四舍五入
  • 原文地址:https://www.cnblogs.com/CongZhang/p/5628788.html
Copyright © 2020-2023  润新知