python是一個腳本語言,被解釋器解釋執行。它的發布方式:
- .py文件:對于開源項目或者源碼沒那么重要的,直接提供源碼,需要使用者自行安裝python并且安裝依賴的各種庫。(python官方的各種安裝包就是這樣做的)
- .pyc文件:有些公司或個人因為機密或者各種原因,不愿意源碼被運行者看到,可以使用pyc文件發布,pyc文件是python解釋器可以識別的二進制碼,故發布后也是跨平臺的,需要使用者安裝相應版本的python和依賴庫。
- 可執行文件:對于非碼農用戶或者一些小白用戶,你讓他裝個python同時還要折騰一堆依賴庫,那簡直是個災難。對于此類用戶,最簡單的方式就是提供一個可執行文件,只需要把用法告訴ta即可。比較麻煩的是需要針對不同平臺需要打包不同的可執行文件(windows,linux,mac,...)。
本文主要就是介紹最后一種方式,.py和.pyc都比較簡單,python本身就可以搞定。將python腳本打包成可執行文件有多種方式,本文重點介紹pyinstaller,其它僅作比較和參考。
一、安裝pyinstaller
1、安裝pywin32
下載安裝文件:查找到跟自己適用的python版本及window系統版本匹配的pywin32,下載后安裝
使用pip命令安裝:pip install pywin32
2、安裝pyinstaller
下載安裝文件安裝:官網
使用pip命令安裝:pip install pyinstaller
二、使用pyinstaller
1、使用下載安裝的方式安裝的pyinstaller打包方式
將需要打包的文件放在解壓得到的pyinstaller文件夾中,打開cmd窗口,把路徑切換到當前路徑打開命令提示行,輸入以下內容(最后的是文件名):
python pyinstaller.py -f myfile.py
2、使用pip方式安裝的pyinstaller打包方式
打開cmd窗口,把路徑切換到文件所在路徑(文件隨便放在哪里都行)打開命令提示行,輸入以下內容(最后的是文件名):
pyinstaller -f myfile.py
3、輸入參數的含義
-f 表示生成單個可執行文件
-w 表示去掉控制臺窗口,這在gui界面時非常有用。不過如果是命令行程序的話那就把這個選項刪除吧!
-p 表示你自己自定義需要加載的類路徑,一般情況下用不到
-i 表示可執行文件的圖標
三、注意事項
文件中使用了第三方庫的打包方式
在打包之前務必找到第三方庫的包,把包復制到到跟myfile.py同目錄下,然后再使用以上2種方式打包,否則會打包失敗或者即使打包成功,程序也會閃退。
下面演示一下使用了第三方庫的打包方式:
找到第三方庫的包,如使用了requests,可以使用查找的方式,找到這個包在哪里,然后把它復制到myfile.py同目錄下
把包文件復制到myfile.py目錄下
給程序換圖標的方法
輸入命令中添加一個-i tubiao.ico(圖標的相對路徑)。如圖:
四、exe文件生成
如果程序打包過程沒有報錯,則會生成3個文件夾(有時候是2個),其中名為dist的文件夾中會有一個myfile.exe文件,運行一下,如果沒有問題就打包成功,可以把這個exe文件單獨拿出去用,其他的生成的文件夾可以刪掉了。
其他打包工具
distribute
功能類似setuptools. 安裝后會有easy_install. 支持python2和python3.
官方: https://pypi.python.org/pypi/distribute/0.7.3
已經于2013年7月5日的0.7.3版后停止開發。
distutils2
功能類似setuptools.
官方:https://pypi.python.org/pypi/distutils2/1.0a4
已經于2012年3月13日的1.0a4版后開始停止開發。
pypi上的原文: keep using setuptools and pip for now, don't use distutils2.
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/gopythoner/p/6337543.html