python程序能不能編譯成exe
python如何編譯成exe文件?具體步驟如下:
python學習網,大量的免費python視頻教程,歡迎在線學習!
1、使用pycharm安裝pyinstaller。
2、找到pyinstaller的安裝目錄。
C:-script.py
相關推薦:《Python教程》
注意在該目錄的母目錄下一般有我們的程序文件
C:
3、將我們要打包的程序至pyinstaller的安裝目錄下:
C:venvScripts
4、打開cmd,找到該路徑 cd C:venvScripts,輸入命令pyinstaller -F *.py
如下圖顯示,打包成功。
5、此時在Scripts的目錄下能夠看到已經生成的dist目錄和*.spec文件。運行*.exe文件即可。
6、也可以使用命令pyinstaller -F *.py,該命令會將所有的依賴放到一個文件夾中。相當於-F的解壓。
『貳』 python可以編譯成exe程序嗎
PyInstaller的原理簡介
PyInstaller其實就是把python解析器和你自己的腳本打包成一個可執行的文件,和編譯成真正的機器碼完全是兩回事,所以千萬不要指
望成打包成一個可執行文件會提高運行效率,相反可能會降低運行效率,好處就是在運行者的機器上不用安裝python和你的腳本依賴的
庫。在linux操作系統下,它主要用的binutil工具包裡面的ldd和objmp命令。
PyInstaller輸入你指定的的腳本,首先分析腳本所依賴的其他腳本,然後去查找,復制,把所有相關的腳本收集起來,包括Python解析
器,然後把這些文件放在一個目錄下,或者打包進一個可執行文件裡面。
可以直接發布輸出的整個文件夾裡面的文件,或者生成的可執行文件。你只需要告訴用戶,你的應用App是自我包含的,不需要安裝其他
包,或某個版本的Python,就可以直接運行了。
需要注意的是,PyInstaller打包的執行文件,只能在和打包機器系統同樣的環境下。也就是說,不具備可移植性,若需要在不同系統上運
行,就必須針對該平台進行打包。
pyinstaller將Python腳本打包成可執行程序,使在沒有Python環境的機器上運行
最新版是pyinstaller 3.1.1。支持python2.7和python3.3+。
可運行在Windows,Mac和Linux操作系統下。
但它不是跨編譯的,也就是說在Windows下用PyInstaller生成的exe只能運行在Windows下,在Linux下生成的只能運行在Linux下。
pyinstaller在windows下的安裝
使用命令pip install pyinstaller即可
在windows下,pyinstaller需要PyWin32的支持。當用pip安裝pyinstaller時未找到PyWin32,會自動安裝pypiwin32。
打包
打包的app里並不包含任何源碼,但將腳本的.pyc文件打包了。
基本語法:
pyinstaller options myscript.py
常用的可選參數如下:
--onefile 將結果打包成一個可執行文件
--onedir 將所有結果打包到一個文件夾中,該文件夾包括一個可執行文件和可執行文件執行時需要的依賴文件(默認)
--paths=DIR 設置導入路徑
--distpath=DIR 設置將打包的結果文件放置的路徑
--specpath=DIR 設置將spec文件放置的路徑
--windowed 使用windows子系統執行,不會打開命令行(只對windows有效)
--nowindowed 使用控制檯子系統執行(默認)(只對windows有效)
--icon=<FILE.ICO> 將file.ico添加為可執行文件的資源(只對windows有效
推薦學習《python教程》。
『叄』 python怎麼轉成exe文件
python提供pyinstaller庫將代碼打包成exe可執行文件,步驟如下:
1.安裝pyinstaller
安裝的方式如同安裝導入其他包一樣,使用pip,執行命令:
pip3 install pyinstaller
自動下載並安裝。
2.打包並轉換成exe
打開終端,進入到需要轉換的python文件路徑下,執行命令:
pyinstaller -F -w (-i icofile) filename
參數說明:
filename:Python文件名
-w :表示隱藏程序運行時的命令行窗口(不加-w會有黑色窗口)
-i icofile:可選參數(可不要),表示給程序加上圖標,圖標必須為.ico格式。icofile表示圖標所在路徑,建議直接放在python同一路徑下,這樣子打包的時候直接寫文件名就好。
3.打包成功
命令執行成功後,會生成N個文件夾,所需要的exe文件就在dist文件夾里。
至此,在windows下將python文件轉成exe就這樣搞定了。
推薦課程:Python高級進階視頻教程
『肆』 鎵撳寘Python浠g爜鐨勫父鐢ㄦ柟娉曪紝璁╀綘鐨勭▼搴忓彉鎴恊xe搴旂敤錛
鍦ㄧ紪紼嬬殑涓栫晫閲岋紝Python浠ュ叾寮哄ぇ鐨勫姛鑳芥繁鍙楀紑鍙戣呭枩鐖便傜劧鑰岋紝鍒嗕韓Python浠g爜鏃訛紝浠栦漢鍙鑳介渶瑕佸畨瑁匬ython瑙i噴鍣ㄦ墠鑳借繍琛岋紝榪欐棤鐤戝炲姞浜嗙敤鎴烽棬妲涖傝繖鏃訛紝灝哖ython浠g爜鎵撳寘鎴愭槗浜庝嬌鐢ㄧ殑.exe搴旂敤錛屾棤鐤戣╁垎浜鍜岄儴緗插彉寰楃畝鍗曘傛湰鏂囧皢娣卞叆鎺㈣ㄥ嚑縐嶅父鐢ㄧ殑Python浠g爜鎵撳寘鎶鏈錛岃╀綘鐨勭▼搴忚交鏉懼寲韜涓虹嫭絝嬬殑鎵ц屾枃浠躲
涓轟粈涔堟墦鍖匬ython浠g爜錛
鎵撳寘Python浠g爜鎴愬彲鎵ц屾枃浠訛紝鍏朵紭鍔誇笉璦鑰屽柣錛
- 渚挎惡鎬: 鍙鎵ц屾枃浠舵棤闇渚濊禆Python鐜澧冿紝鍙鍦ㄤ換浣曟湭瀹夎匬ython鐨勭郴緇熶笂榪愯岋紝鏋佸ぇ鎻愬崌浜嗗簲鐢ㄧ殑閫氱敤鎬с
- 浠g爜淇濇姢: 鍙鎵ц屾枃浠墮氬父闅句互鍙嶇紪璇戱紝鑳芥湁鏁堜繚鎶ゆ簮浠g爜錛岀『淇濈煡璇嗕駭鏉冨畨鍏ㄣ
- 鐢ㄦ埛浣撻獙鎻愬崌: 鐢ㄦ埛鏃犻渶鎵嬪姩瀹夎匬ython錛屽彧闇鍙屽嚮鍗沖彲鍚鍔錛岀畝鍖栦簡浣跨敤嫻佺▼銆
鍑犵嶆墦鍖呭伐鍏峰ぇ鎻縐
涓嬮潰鎴戜滑灝嗛愪竴浠嬬粛鍑犵嶄富嫻佺殑Python浠g爜鎵撳寘宸ュ叿錛
- PyInstaller: 浣滀負鏈鍙楁㈣繋鐨勫伐鍏蜂箣涓錛屽畠鏀鎸乄indows銆乵acOS鍜孡inux騫沖彴錛屽畨瑁呯畝鍗曪紝鍙闇鍦ㄧ粓絝涓杈撳叆pip install pyinstaller銆備嬌鐢ㄦ椂錛屽彧闇灝嗚剼鏈琺y_script.py鏀懼叆鍛戒護琛岋紝濡 pyinstaller my_script.py錛屽畠浼氳嚜鍔ㄥ勭悊渚濊禆騫剁敓鎴恉ist鐩褰曚笅鐨勫彲鎵ц屾枃浠躲
- cx_Freeze: 鍙︿竴涓璺ㄥ鉤鍙扮殑瑙e喅鏂規堬紝閫氳繃pip install cx_Freeze瀹夎呫傚壋寤簊etup.py閰嶇疆鏂囦歡鍚庯紝濡 cxfreeze setup.py build錛屽嵆鍙鐢熸垚鍙鎵ц屾枃浠躲
- py2exe: 涓撲負Windows璁捐★紝pip install py2exe鍗沖彲瀹夎呫傞厤緗畇etup.py鏂囦歡鍚庯紝閫氳繃 python setup.py py2exe 鐢熸垚鍙鎵ц屾枃浠躲
- py2app: 涓撲負macOS鎵撻狅紝pip install py2app鍚庯紝閫氳繃 python setup.py py2app 鐢熸垚.dmg鏂囦歡錛屽寘鍚鍙鎵ц岀▼搴忋
- Nuitka: 鐢ㄤ簬灝哖ython鑴氭湰緙栬瘧涓哄彲鎵ц屾枃浠訛紝pip install nuitka鍚庯紝浣跨敤 nuitka --standalone my_script.py 榪涜岀紪璇戱紝鐢熸垚my_script.dist鐩褰曚腑鐨勫彲鎵ц屾枃浠躲
閫夋嫨鍚堥傜殑宸ュ叿
姣忕嶅伐鍏烽兘鏈夊叾閫傜敤鍦烘櫙錛歅yInstaller鍜宑x_Freeze閫傚悎澶氬鉤鍙伴儴緗詫紝py2exe瀵筗indows鐢ㄦ埛鍙嬪ソ錛宲y2app鍒欎笓涓簃acOS璁捐°傚傛灉浣犺拷奼傛洿楂樼殑鎬ц兘鍜屽彲縐繪嶆э紝Nuitka鐨勭紪璇戞妧鏈鏄涓涓嶉敊鐨勯夋嫨銆傛牴鎹浣犵殑鐩鏍囧鉤鍙板拰闇奼傦紝閫夋嫨鍚堥傜殑宸ュ叿錛岃㏄ython紼嬪簭鏃犻渶Python鐜澧冨氨鑳藉崕涓借漿韜涓虹嫭絝嬪簲鐢ㄣ
鎬葷粨
灝哖ython浠g爜鎵撳寘鎴愬彲鎵ц屾枃浠訛紝鏃犵枒涓哄簲鐢ㄧ▼搴忕殑鍒嗕韓鍜岄儴緗插甫鏉ヤ簡闈╁懡鎬х殑鍙橀潻銆傞氳繃PyInstaller銆乧x_Freeze銆乸y2exe銆乸y2app鍜孨uitka錛屼綘鍙浠ヨ交鏉懼皢Python鑴氭湰杞鍖栦負鐢ㄦ埛鍙嬪ソ鐨別xe搴旂敤錛屾棤璁轟綘鏄涓轟簡鍒嗕韓錛岃繕鏄鏋勫緩鐙絝嬪伐鍏鳳紝榪欎簺宸ュ叿閮借兘璁╄繃紼嬪彉寰楃畝鍗曟槗琛屻傞夋嫨涓涓宸ュ叿錛岃㏄ython鐨勫姏閲忚Е鎵嬪彲鍙婏紒
『伍』 怎麼把python打包成exe
PyInstaller 是一個用來將 Python 程序打包成一個獨立可執行軟體包,支持 Windows、Linux 和 Mac OS X。
下載
https://github.com/pyinstaller/pyinstaller/
2. 使用
python製作exe可執行文件的方法---使用pyinstaller
python生成windows下exe格式的可執行程序有三種可選方案: py2exe是大家所熟知的,今天要介紹pyinstaller, 這個工具全平台可用。我曾使用python製作一個工具程序供公司同事使用後,由於公司使用mac linux windows都有很多,就使用過它來將程序做成可執行文件,兼容性好,只是會使得程序在linux平台和mac平台啟動較慢(windows還是比較快的),但基本夠用。
安裝完pyinstaller之後就可以開始了。
1.使用pyinstaller生成可執行文件的方法
1.1 將依賴文件集中到一個文件夾:
pyinstaller -D -w main.py #把main.py替換成你的主入口python文件即可。
-w參數代表main.py是一個窗體程序。
1.2 將所有依賴文件都打包到同一個可執行文件中:
pyinstaller -F -w main.py
2.調查pyinstaller生成程序的載入過程
使用如下命令,可以得到運行時的跟蹤,tracing ,loader 的載入過程。
pyinstaller -Fwd aui.py #把aui.py 換成你需要偵測的文件即可。
『陸』 鎬庢牱灝唒ython鐢熸垚exe
Python鏄涓涓鑴氭湰璇璦錛岃瑙i噴鍣ㄨВ閲婃墽琛屻傚畠鐨勫彂甯冩柟寮忥細
.py鏂囦歡錛氬逛簬寮婧愰」鐩鎴栬呮簮鐮佹病閭d箞閲嶈佺殑錛岀洿鎺ユ彁渚涙簮鐮侊紝闇瑕佷嬌鐢ㄨ呰嚜琛屽畨瑁匬ython騫朵笖瀹夎呬緷璧栫殑鍚勭嶅簱銆傦紙Python瀹樻柟鐨勫悇縐嶅畨瑁呭寘灝辨槸榪欐牱鍋氱殑錛
.pyc鏂囦歡錛氭湁浜涘叕鍙告垨涓浜哄洜涓烘満瀵嗘垨鑰呭悇縐嶅師鍥狅紝涓嶆効鎰忔簮鐮佽榪愯岃呯湅鍒幫紝鍙浠ヤ嬌鐢╬yc鏂囦歡鍙戝竷錛宲yc鏂囦歡鏄疨ython瑙i噴鍣ㄥ彲浠ヨ瘑鍒鐨勪簩榪涘埗鐮侊紝鏁呭彂甯冨悗涔熸槸璺ㄥ鉤鍙扮殑錛岄渶瑕佷嬌鐢ㄨ呭畨瑁呯浉搴旂増鏈鐨凱ython鍜屼緷璧栧簱銆
鍙鎵ц屾枃浠訛細瀵逛簬闈炵爜鍐滅敤鎴鋒垨鑰呬竴浜涘皬鐧界敤鎴鳳紝浣犺╀粬瑁呬釜Python鍚屾椂榪樿佹姌鑵句竴鍫嗕緷璧栧簱錛岄偅綆鐩存槸涓鐏鵑毦銆傚逛簬姝ょ被鐢ㄦ埛錛屾渶綆鍗曠殑鏂瑰紡灝辨槸鎻愪緵涓涓鍙鎵ц屾枃浠訛紝鍙闇瑕佹妸鐢ㄦ硶鍛婅瘔Ta鍗沖彲銆傛瘮杈冮夯鐑︾殑鏄闇瑕侀拡瀵逛笉鍚屽鉤鍙伴渶瑕佹墦鍖呬笉鍚岀殑鍙鎵ц屾枃浠訛紙Windows,Linux,Mac,...錛夈
鏈鏂囦富瑕佸氨鏄浠嬬粛鏈鍚庝竴縐嶆柟寮忥紝.py鍜.pyc閮芥瘮杈冪畝鍗曪紝Python鏈韜灝卞彲浠ユ悶瀹氥傚皢Python鑴氭湰鎵撳寘鎴愬彲鎵ц屾枃浠舵湁澶氱嶆柟寮忥紝鏈鏂囬噸鐐逛粙緇峆yInstaller錛
PyInstaller鐨勫師鐞嗙畝浠
PyInstaller鍏跺疄灝辨槸鎶妏ython瑙f瀽鍣ㄥ拰浣犺嚜宸辯殑鑴氭湰鎵撳寘鎴愪竴涓鍙鎵ц岀殑鏂囦歡錛屽拰緙栬瘧鎴愮湡姝g殑鏈哄櫒鐮佸畬鍏ㄦ槸涓ゅ洖浜嬶紝鎵浠ュ崈涓囦笉瑕佹寚鏈涙垚鎵撳寘鎴愪竴涓鍙鎵ц屾枃浠朵細鎻愰珮榪愯屾晥鐜囷紝鐩稿弽鍙鑳戒細闄嶄綆榪愯屾晥鐜囷紝濂藉勫氨鏄鍦ㄨ繍琛岃呯殑鏈哄櫒涓婁笉鐢ㄥ畨瑁卲ython鍜屼綘鐨勮剼鏈渚濊禆鐨勫簱銆傚湪Linux鎿嶄綔緋葷粺涓嬶紝瀹冧富瑕佺敤鐨刡inutil宸ュ叿鍖呴噷闈㈢殑ldd鍜宱bjmp鍛戒護銆
PyInstaller杈撳叆浣犳寚瀹氱殑鐨勮剼鏈錛岄栧厛鍒嗘瀽鑴氭湰鎵渚濊禆鐨勫叾浠栬剼鏈錛岀劧鍚庡幓鏌ユ壘錛屽嶅埗錛屾妸鎵鏈夌浉鍏崇殑鑴氭湰鏀墮泦璧鋒潵錛屽寘鎷琍ython瑙f瀽鍣錛岀劧鍚庢妸榪欎簺鏂囦歡鏀懼湪涓涓鐩褰曚笅錛屾垨鑰呮墦鍖呰繘涓涓鍙鎵ц屾枃浠墮噷闈銆
鍙浠ョ洿鎺ュ彂甯冭緭鍑虹殑鏁翠釜鏂囦歡澶歸噷闈㈢殑鏂囦歡錛屾垨鑰呯敓鎴愮殑鍙鎵ц屾枃浠躲備綘鍙闇瑕佸憡璇夌敤鎴鳳紝浣犵殑搴旂敤App鏄鑷鎴戝寘鍚鐨勶紝涓嶉渶瑕佸畨瑁呭叾浠栧寘錛屾垨鏌愪釜鐗堟湰鐨凱ython錛屽氨鍙浠ョ洿鎺ヨ繍琛屼簡銆
闇瑕佹敞鎰忕殑鏄錛孭yInstaller鎵撳寘鐨勬墽琛屾枃浠訛紝鍙鑳藉湪鍜屾墦鍖呮満鍣ㄧ郴緇熷悓鏍風殑鐜澧冧笅銆備篃灝辨槸璇達紝涓嶅叿澶囧彲縐繪嶆э紝鑻ラ渶瑕佸湪涓嶅悓緋葷粺涓婅繍琛岋紝灝卞繀欏婚拡瀵硅ュ鉤鍙拌繘琛屾墦鍖呫
pyinstaller灝哖ython鑴氭湰鎵撳寘鎴愬彲鎵ц岀▼搴忥紝浣垮湪娌℃湁Python鐜澧冪殑鏈哄櫒涓婅繍琛
鏈鏂扮増鏄痯yinstaller 3.1.1銆傛敮鎸乸ython2.7鍜宲ython3.3+銆
鍙榪愯屽湪Windows錛孧ac鍜孡inux鎿嶄綔緋葷粺涓嬨
浣嗗畠涓嶆槸璺ㄧ紪璇戠殑錛屼篃灝辨槸璇村湪Windows涓嬬敤PyInstaller鐢熸垚鐨別xe鍙鑳借繍琛屽湪Windows涓嬶紝鍦↙inux涓嬬敓鎴愮殑鍙鑳借繍琛屽湪Linux涓嬨
pyinstaller鍦╳indows涓嬬殑瀹夎
浣跨敤鍛戒護pip install pyinstaller鍗沖彲
鍦╳indows涓嬶紝pyinstaller闇瑕丳yWin32鐨勬敮鎸併傚綋鐢╬ip瀹夎卲yinstaller鏃舵湭鎵懼埌PyWin32錛屼細鑷鍔ㄥ畨瑁卲ypiwin32銆
鎵撳寘
鎵撳寘鐨刟pp閲屽苟涓嶅寘鍚浠諱綍婧愮爜錛屼絾灝嗚剼鏈鐨.pyc鏂囦歡鎵撳寘浜嗐
鍩烘湰璇娉曪細
pyinstaller options myscript.py
甯哥敤鐨勫彲閫夊弬鏁板備笅錛
--onefile 灝嗙粨鏋滄墦鍖呮垚涓涓鍙鎵ц屾枃浠
--onedir 灝嗘墍鏈夌粨鏋滄墦鍖呭埌涓涓鏂囦歡澶逛腑錛岃ユ枃浠跺す鍖呮嫭涓涓鍙鎵ц屾枃浠跺拰鍙鎵ц屾枃浠舵墽琛屾椂闇瑕佺殑渚濊禆鏂囦歡錛堥粯璁わ級
--paths=DIR 璁劇疆瀵煎叆璺寰
--distpath=DIR 璁劇疆灝嗘墦鍖呯殑緇撴灉鏂囦歡鏀劇疆鐨勮礬寰
--specpath=DIR 璁劇疆灝唖pec鏂囦歡鏀劇疆鐨勮礬寰
--windowed 浣跨敤windows瀛愮郴緇熸墽琛岋紝涓嶄細鎵撳紑鍛戒護琛岋紙鍙瀵箇indows鏈夋晥錛
--nowindowed 浣跨敤鎺у埗鍙板瓙緋葷粺鎵ц岋紙榛樿わ級錛堝彧瀵箇indows鏈夋晥錛
--icon=<FILE.ICO> 灝唂ile.ico娣誨姞涓哄彲鎵ц屾枃浠剁殑璧勬簮(鍙瀵箇indows鏈夋晥錛