pyqt5 筆記(三)py2exe 實現代碼打包exe


python3.4

安裝64位的版本 py2exe

下載地址: https://pypi.python.org/pypi/py2exe/0.9.2.0#downloads

cmd——>進入pyfile/pyqt5的文件目錄下,dir,執行python setupp.py py2exe

很好的教程:      http://www.doc88.com/p-7357353064359.html

        http://www.cnblogs.com/qq78292959/p/3510186.html


 

setupp.py

 1 from distutils.core import setup
 2 import py2exe
 3 
 4 
 5 #sys.argv.append('py2exe')
 6 
  packages=[] 7 py2exe_options = { #py2exe中的options字典 8 "includes": ['sip'], 9 "dll_excludes": ["MSVCP90.dll",], 10 "compressed": 2, 11 "optimize": 2, 12 "ascii": 0, 13 "bundle_files": 3,
       "packages":packages,
      "dist_dir":"MyPrpgram"    #生成MyProgram文件夾,放好多代碼
14 } 15 16 setup( #py2exe拓展的distutils setup參數: 17 windows = [ #列表,包含需要被轉換為GUI exe的腳本 18 { 19 "script":"index.py", 20 # "icon_resources":[(1,"myicon.ico")] #為程序添加圖標 21 } 22 ], 23 zipfile = "myzip.zip", #產生共享壓縮文件的名字;可以指定一個子目錄:默認是'library,zip';如果值為none,文件將會被打包進可執行文件而不是library.zip 24 options = {'py2exe': py2exe_options} #字典, 25 )

 

遇到問題:

UnicodeDecodeError:'gbk' codec can't decode byte 0xaf  illegal multibyte sequence

嘗試解決1:試了很多種編碼方式   # -*- coding:utf-8 -*-     # -*- coding: gbk -*-

嘗試解決2:在windows的cmd中設置支持UTF-8編碼

CHCP命令:顯示or設置活動代碼頁的編號
GB2312 對應的是936
UTF8對應的是65001
輸入65001,然后再cmd窗口上右鍵,選擇屬性,設置字體,選擇Lucida Console 即可~

嘗試解決3:添加

import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')

都失敗~

分析問題:

報錯的異常是   
UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 2-3: illegal multibyte sequence

UnicodeDecodeError: Unicode的解碼(Decode)出現錯誤(Error)了,

  • 你當前正在處理某種編碼類型的字符串
  • 此處你要處理字符串,是想要將該字符串去解碼decode,變成Unicode
  • 但是將該字符串解碼變成Unicode期間,卻出錯了

‘gbk’ codec can’t decode:

  • 你此處,要將字符串解碼為Unicode,是以gbk編碼的方式去解碼(該字符串變成Unicode)的
  • 但是此處通過gbk的方式,卻無法解碼(can’t decode )
  • 注:此處的codec,意思是:編解碼(器),是Python內部的模塊,用來編碼或解碼(字符串)的

bytes in position 2-3  :  定位具體錯誤的位置

illegal multibyte sequence  :  非法的,多字節,序列。沒法解碼

 

最終解決辦法:去除代碼中所有中文字符,包括注釋,然后就可以了。。。。

遇到問題:This application failed to start because it could not find or load the Qt platform plugin "windows"

原因是環境變量沒有添加。

在環境變量中增加:

QT_QPA_PLATFORM_PLUGIN_PATH

C:\Python34\Lib\site-packages\PyQt5\plugins <<-------PyQt5的plugins文件夾所在位置(新建系統變量)

 


 

簡單的小例子

sett.py

1 __author__ = 'yangyang5'
2 from distutils.core import setup
3 import py2exe
4 
5 setup(
6     console=['hi.py']       #列表,包含需要被轉換為控制台exe的腳本
7 )

hi.py  print('hello world~')

去cmd中執行 python sett.py py2exe

之后輸出一系列打包過程

成功后,會生成build和dist2個文件夾,build是工作時的空間,完成后會自動消失。dist中有exe和運行時需要的文件

試一試打包成功的exe

進入cmd,.dist文件夾,運行 hi.exe

成功~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM