在這里分享一下如何在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
```
- 補丁安裝完之后再回到第二步進行打包程序就可以了
### 四、看下我打包之后的幾個截圖
- 打包程序目錄截圖

- 雙擊index的運行程序,效果如下

##### 有個黑窗口,這個在后面我學習到了再進行解決,這會要收拾東西上班去了