pyinstaller的坑


python版本:python 2.7

      python 3.7

編譯器:Pycharm

python有着很多將 py文件轉化為exe可執行文件,其中pyinstaller用的最廣泛

但是pyinstaller編譯的同時坑也隨之出現

一、pyinstaller安裝

1. python2.x  : pip installer pyinstaller

2. python3.x  : pip3 installer pyinstaller

3. pycharm    :請在setting中設置(這里不做詳解)

二、使用命令

基本命令  :pyinstaller xx.py  會產生一些依賴文件不能單獨運行

普通命令  :pyinstaller -F xx.py   將產生的依賴文件整合在exe文件中

加入圖標命令  :pyinstaller -F -i xx.ico xx.py

三、轉化過程中的坑

1、

命令輸入錯誤

2、加入圖標時報錯  struct.error: unpack requires a string argument of length 16

選用的圖標必須為16*16格式,將格式轉化為16*16即可成功

3、圖片格式必須為ico格式不然也會報錯

4、運行后亂碼情況或編譯為exe文件時報錯UnicodEerror

  cmd命令框窗口使用的編碼格式為gbk

  在py文件中,在首行寫入# -*- coding:gbk -*-

四、關於python2.x與python3.x打包之后的區別

python2.x

1.python2.x對於導入的模塊會進行自動整合進exe文件中

2.對於輸入函數,如果輸入的為字符串需要使用str(raw_input())函數

3.使用python2.x的時候必須首行寫入 # -*- coding:utf-8 -*-,不然輸入漢字會報錯,或者運行亂碼

  在pyinstaller編譯前將utf-8改為gbk

python3.x

1.相比於python2.x,模塊並不會自動整合到exe文件中,運行時會報錯缺少xx模塊

  使用命令解決:pyinstaller -F -p 模塊路徑 xx.py

2.對於輸入函數,python3.x取消了raw_input()的字符輸入,統一使用input()函數,輸入的內容統一以字符格式

  在形成的exe文件后執行輸入字符時,必須要用   ' '  將輸入的文字表示為字符

3.相比於python2.x,python3.x不需要在首行寫入# -*- coding:utf-8 -*- 也能自動識別漢字

  在轉化為exe文件時,依然需要寫入# -*- coding:gbk -*-避免亂碼以及不必要的錯誤

 


免責聲明!

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



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