python用cx Freeze打包程式

2021-06-19 06:47:28 字數 1053 閱讀 2153

在python中比較常用的轉exe方法有三種,分別是cx_freeze,py2exe,pyinstaller。py2exe恐怕是三者裡面知名度最高的乙個,但是同時相對來說它的打包質量恐怕也是最差的乙個。pyinstaller打包很好,但是操作工序較為複雜。個人還是推薦cx_freeze。

生成可執行程式有兩種方式:

1、通過cxfreeze-quickstart生成setup.py檔案,定製setup.py檔案。python setup.py build

2、執行 cxfreeze main.py 預設生成dist目錄。可以新增選項。可以通過cxfreeze -h檢視幫助文件。

一般情況下。這兩種都可以正確生成可執行程式。

特殊情況下(未知),第一種可能會出現錯誤。第二種不會出現錯誤。

第一種需要自己定製setup.py檔案。需要手動新增第三方模組。如果不新增,會出現錯誤。第二種不會出現錯誤。

本人在linux,windows下測試。windows都沒有問題。linux呼叫第一種方法出現錯誤(模組依賴錯誤)。推薦使用第二種方法。

剛開始打包程式的時候。在做簡單的兩種都可以。當專案比較的大的時候。兩種都出現問題了。

這種程式設計方式並不是很好。   為了解決這個問題。

修改完成之後。兩種方式都可以正確生成可執行程式。

windows沒有出現問題。linux第二種在本機沒有出現問題。但是拿到別人的電腦上會出現問題。出現  importerror: no module named _md5或者動態庫找不到。

參考:在linux 打包程式。cxfreeze並沒有完全打包所有依賴動態庫。一些跟python有關系統庫的 libcrypto.so.10,libssl.so.10並沒有拷貝過去。 本人還用pyside。本人用的pyside因為是手動編譯的。依賴與c++版本的qt庫。所以必須將所有依賴都得拷過去。

檢視依賴的動態庫:windows dependcy。linux 可以用ldd(本人電腦上不管用) readelf -d  *.so | grep 'so'。

完成依賴庫的拷貝以後。linux需要將當前目錄設定在ld_library_path裡面。打包的可執行程式能夠正常執行。

python 檔案用cx Freeze 打包

例如 我 安裝 python在 c python27 cx freeze安裝 完後在以下目錄 c python27 lib site packages cx freeze 在c python27 lib site packages cx freeze samples 下面 有幾個例子 setup.p...

cx freeze打包Python程式

python程式打包成exe 兩種比較好的方法 cx freeze和pyinstaller。cx freeze用起來簡單,pyinstaller功能強能打包成單個檔案。先說cx freeze.安裝完cx freeze以後建立cx freeze.bat,方法如下 python cxfreeze pos...

關於 cx Freeze 的中文 API

以下有三種不同的方式來使用cx freeze 1 使用包含cxfreeze的指令碼 2 建立乙個 distuils setup指令碼。如果你想在打包你的專案時有額外的選項,那麼這個指令碼是非常有用的,因為你能把你想要的選項儲存進這個指令碼。執行 cxfreeze quickstart來形成乙個簡單的...