日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pyqt5能直接编译python吗_用PyInstaller打包用PyQt5编写的python程序

發布時間:2023/12/19 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyqt5能直接编译python吗_用PyInstaller打包用PyQt5编写的python程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0.背景

本弱初學PyQt5,寫了一個GUI小程序,但在用PyInstaller打包時出現了不少問題,現將幾個比較大的問題記錄如下,希望以后能記住。

1. 資源打包

首先是資源打包的問題,我寫的程序引用了一張圖片,那么在沒經過特殊處理的情況下如果想讓程序正常運行,就必須把圖片放在和程序同一個目錄下,但這樣總覺得不太舒服。我在網上看到有三種解決方法:一是通過修改PyInstall配置文件*.spec來實現打包,但是在我的環境下不成功;二是自己寫程序對圖片進行Base64編碼存在字符串里并存儲在另一個腳本中,然后令主程序import它;三是用PyQt5自帶的工具:pyrcc5進行處理。本質上第三種和第二種的原理是基本一樣的,但本著“不(xiang)重(jin)復(ban)造(fa)輪(tou)子(lan)”的原則,我更喜歡第三種。操作如下:

一、創建一個擴展名為qrc的文件,內容如下(mouse.ico是圖片文件,且標簽可以有多個):

mouse.ico

二、在程序目錄執行命令

pyrcc5 images.qrc -o images_qr.py

命令語法類似于gcc,images.qrc是剛才那個文件,images_qr.py是輸出的含有圖片序列化字符串的python文件。

三、在主程序的開頭引用

import images_qr

同時將文中引用圖片的路徑前加冒號

QIcon(‘:mouse.ico‘)

2. PyInstaller打包程序

其次是打包的問題,如果按照普通命令打包,會產生“No module name ‘PyQt5.sip‘”的錯誤,這是因為PyInstaller沒有找全PyQt5依賴包,需要我們親自指定:

pyInstaller --hidden-import PyQt5.sip -F mousenew.py -w -i mouse.ico

這樣就能成功打包了。

3. 總結

注意以后打包時先別帶-w參數,不然打包后的exe如果運行錯誤就直接彈個Fail to execute the script.然后就退出了,連調都沒法調,如果是命令行打包,至少錯了它還會在命令行打印Traceback,等命令行程序沒錯了再加-w。

總結

以上是生活随笔為你收集整理的pyqt5能直接编译python吗_用PyInstaller打包用PyQt5编写的python程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。