ubuntu下使用pyinstaller將python文件打包成exe(py文件中含有keras框架的代碼)


一 使用工具

pyinstaller, 在ubuntu上安裝pyinstaller非常的簡單,直接使用下面的命令即可

pip install pyinstaller

注意:推薦大家使用python3.0及以上的python版本(好像python3.6使用pyinstaller也存在一些問題),因為使用python2.7下的pyinstaller在封裝的時候會提示缺失各種包等問題,然而直接使用python3.5下的pyinstaller進行封裝就非常的流暢。

二 打包的方法

進入到需要打包的py文件的目錄下,在命令行中運行:

pyinstaller 文件名.py(會生成三個文件夾,有用的是dist文件夾,在該文件夾下有一個和py文件同名的exe文件,就是打包生成的exe文件)

或pyinstaller -F 文件名.py(也會生成三個文件夾,有用的同樣是dist文件,不同的是dist文件夾下只有一個exe文件)

pyinstaller含有的一些參數(來源與https://blog.csdn.net/qq_27833589/article/details/62898130):

-F的含義為將原文件打包為exe文件,這里還有其他幾個可選參數
-D:創建一個目錄,包含exe文件,但會依賴很多文件,這是默認選項
-c:使用控制台,這也是默認選項
-w:使用窗口,無控制台

三 遇到的問題

問題描述:按照上面的方法成功打包,但是在執行exe文件時出現了一個非常奇怪的問題,就是程序好像開啟了多個進程來分別運行該程序一樣,控制台窗口可以看到的是程序正在瘋狂的不斷重復的運行,而且重復運行不是一次結束后,立馬接着執行,而是不等上次執行結束,就又開始執行了下一次。

問題查找:剛開始的時候,十分的迷,根本不知道怎么去尋找原因,后來在實驗室大佬的指導下,一步一步的排除原因,最后終於找到是因為引入的一個工具包的原因,這個包是from sklearn import preprocessing用來對數據進行歸一化。

結論:在使用pyinstaller時,不要在py文件中引用from sklearn import preprocessing包,盡量通過自己寫函數來實現相應的功能(我就是這么做的,因為歸一化還是比較好寫的)。pyinstaller 可以將tensorflow和keras進行完好的封裝,這點上不用懷疑pyinstaller的能力。

之前一直寫C++,沒有接觸過python。最近幾個月,用python寫了一些功能,發現python真的太好用了,開始迷戀於python了。

 


免責聲明!

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



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