- pyinstaller 打包多大
我是利用Anaconda 把相應(yīng)的文件放到Script pyinstaller -F -w xxx.py
打包后的文件超級大攒庵,因為anaconda 把許多關(guān)聯(lián)的庫都打包進(jìn)去了,所以我們必須
找一個只有我們需要的包的環(huán)境父阻,去掉不能用的庫覆致,故虛擬一個環(huán)境侄旬,然后安裝上
需要的庫(當(dāng)然要將不必要的庫盡量減少)。
1)安裝pipenv pip install pipenv- pipenv --python 3.7 指定python版本創(chuàng)建環(huán)境
3)pipenv sheel 激活虛擬環(huán)境
4)安裝需要的庫 pipenv install package - 庫安裝的速度可能會比較慢 將下載的鏡像設(shè)置為國內(nèi) Pipfile文件中[source]下面
url屬性煌妈,比如修改成:url = "https://pypi.tuna.tsinghua.edu.cn/simple" - 然后打包就可以
- 啟動exe chromedriver啟動黑框的問題
修改selenium包中的service.py(selenium->webdriver->common-service.py)源碼
打開這個文件儡羔,然后定位到75行(你源碼中可能在76行或其他行):
將stdin=PIPN,中添加creationflags=134217728
- pipenv --python 3.7 指定python版本創(chuàng)建環(huán)境
參考鏈接:http://www.reibang.com/p/00af447f0005
https://blog.csdn.net/frostime/article/details/90523062
https://blog.csdn.net/La_vie_est_belle/article/details/81252588
- UI 無響應(yīng)問題
由于pyqt底層是C,主程序一直在刷新UI界面声旺,所以在主程序中啟動比較耗時的程序笔链,界面就會出現(xiàn)假死的現(xiàn)象。處理的方法就是將耗時的程序另外啟動一個線程就行操作腮猖。https://blog.csdn.net/hu694028833/article/details/80977302 這篇文章將的最好了鉴扫。
class Example(QThread): ##多線程
signal = pyqtSignal() # 括號里填寫信號傳遞的參數(shù)
def init(self):
super().init()
def run(self):
# 進(jìn)行任務(wù)操作
self.signal.emit() # 發(fā)射信號
UI類中
def buttonClick(self)
self.thread = Example()
self.thread.signal.connect(self.callback) ##這個就是在主要程序運行完成后,就 收到相應(yīng)的信號后澈缺,執(zhí)行的操作坪创;這個是先定義的,不能放在start后姐赡,先把架子搭好
self.thread.start() # 啟動線程莱预,一定要用start ,不可以用run,這兩個函數(shù)不能傳遞參數(shù),所以需要在Example中通過self傳遞參數(shù)项滑。
def callbakc(self):
pass
2019.8.2
事實證明依沮,利用虛擬環(huán)境進(jìn)行打包,尤其是在anaconda下簡直是找罪受枪狂,而且pipenv安裝的虛擬環(huán)境很不穩(wěn)定經(jīng)常報錯危喉,哎,最好的辦法就是直接下載python 然后cd到script目錄下利用pip進(jìn)行包的安裝州疾,然后進(jìn)行打包辜限。
開始打包不確定是否會有問題,使用pyinstaller xxx.py進(jìn)行打包严蓖,這樣可以在控制窗口看見報錯信息薄嫡,然后再使用-F -w進(jìn)行打包,血一樣的教訓(xùn)颗胡。