py腳本編譯成exe
『壹』 將python打包成exe
return 應該放在一個函數裡面的,
將python打包成exe的程序有很多,比如py2exe、PyInstaller等等,但是到目前為止,它們對python3.1支持的都不好,所以這里我要介紹一下cx_freeze 4.2.2,它還能支持跨平台,可以在windows和linux運行。
cx_freeze的下載網址為 http://sourceforge.net/projects/cx-freeze/files/ ,要根據已安裝的python版本進行選擇。比如我使用的是python3.1,所以就要下載cx_Freeze-4.2.2.win32-py3.1.msi這個文件。運行這個安裝包後,相關程序就會被拷貝到python的目錄下。主要在兩個地方,一個是C:/Python31/Scripts,另一個是C:/Python31/Lib/site-packages/cx_Freeze
在以前版本的cx_Freeze中,是通過FreezePython.py這個腳本將py轉換為exe,而在4.2.2這個版本中,FreezePython.py已經不見了,主要的工作交給了C:/Python31/Scripts下的cxfreeze.bat來完成。
使用cx_Freeze完成python打包exe主要有兩種方法:
第一種,直接運行cxfreeze.bat通過:
先進入cmd命令行,進入C:/Python31/Scripts目錄,然後運行cxfreeze.bat -h 就可以看到它的使用說明了。我們可以用cx_freeze自己的sample做個試驗。
進入到c:/python31/scripts/下,運行
cxfreeze C:/Python31/Lib/site-packages/cx_Freeze/samples/PyQt4/PyQt4app.py --install-dir=d:/123
pytqt4app.py就會被打包成exe,並且它所用到的庫文件,也被一並考到了d:/123目錄下。
『貳』 怎樣用pycharm 把.py文件編譯成可以單獨運行的exe文件
解釋器文件和解釋器
先解釋兩個概念;解釋器文件和解釋器。
l 解釋器文件:一種文本文件,開頭通常是:#! pathname [option-argument];比較常見的是#! /bin/bash,shell腳本和python腳本都屬於解釋器文件。
l 解釋器:解釋器文件第一行中pathname指定的程序,如bash。
3.1 解釋器文件的執行
當執行(exec)"解釋器"文件時,exec系統調用會識別這種文件,內核使調用exec函數的進程實際執行的並不是該"解釋器文件",而是pathname指定的解釋器。
我們可以自己寫一個解釋器,如之前所寫的foo.c:
l foo.c
#include <stdio.h>
int
main(int argc,char* argv[])
{
『叄』 如何使用腳本程序做一個exe 比如用python寫一個exe文件 目的是打開桌面上的1.txt
寫py程序,兩行代碼如下:
importos
os.system("派稿春notepadD:/1.txt")下載pyinstaller,直接pip install
在py文件敬嫌目錄下打開命令行窗口,輸入pyinstaller -m -F xxx.py,執行
系統會自動生成一塵耐個dist文件夾,一般該exe文件會被殺毒軟體幹掉,找迴文件即可
『肆』 使用Pyinstaller打包成EXE文件
pyinstaller能夠在Windows、Linux等操作系統下將Python腳本打包成可直接運行程序。使Python腳本可以在沒有安裝Python的環境中直接運行,方便共享。
python 2.7.12 + Windows7
1.待轉換的.py文件絕對路徑最好不要包含中文字元。容易出現一些莫名其妙的問題。
2.python中需要有.py文件中用到的第三方庫。否則在轉換後的.exe文件中會出現不符合預期的結果。
1.配置pip鏡像源。
在用慶族戶家目錄下創建pip目錄和pip.ini文件。方法如下
step1: 獲取HOMEPATH變數對應的路徑,執行 set HOMEPAT H也可以執行 echo %HOMEPATH% 獲取。
上述結果說明用戶家目錄HOMEPATH對應的路徑為C:UsersAdministrator。
step2: 在C:UsersAdministrator目錄下創建pip目錄,斗啟並在pip目錄下創建pip.ini文件。如果已經有pip目錄和pip.ini文件,跳過。 特別說明的是,pip.ini文件的後綴是.ini,注意隱藏擴展文件譽銷弊名可能造成的影響。 在pip.ini文件中添加相關內容並保存:
step3: 測試pip工具,確認是否能夠自動安裝第三方庫,如使用pip自動安裝Pexpect類庫。
step4: 進入python工具,執行import pexpect導入模塊命令,沒有報錯說明pip自動安裝pexpect庫成功。
step5: 結束安裝,後續安裝第三方庫就可以在任意路徑下直接執行pip install ${PackageName}進行安裝。
2.打開cmd命令行窗口,輸入 pip install pyinstaller ,安裝pyinstaller庫。
3.確認pyinstaller安裝結果,位於c:Python27Scripts路徑下。執行 where pyinstaller 查看
pyinstaller [options] script
例如: pyinstaller -F myscript.py
options常用選項說明:
pyinstaller其實就是把python解釋器和腳本打包成一個可執行文件,和編譯成真正的機器碼是完全兩回事。所以打包不一定會提高運行效率,可能會降低運行效率,但是好處是在運行者機器上不用安裝python和腳本所依賴的庫。
輸入指定的腳本後,首先pyinstaller會分析該腳本所依賴的其他依賴,然後進行查找、復制,把所有相關的依賴都收集起來並進行加密處理,包括python解釋器,最後把這些文件放在一個目錄下,或者打包到一個可執行文件,然後就可以直接運行所生成的可執行文件。
需要注意的是,使用pyinstaller打包生成的可執行文件,只能再和打包機器系統相同的環境下運行。32位python環境打包的程序可以運行在32/64位windows系統上。64位python環境打包的程序只能運行在64位windows系統上。所以如果想打包程序的話,建議使用32位python環境打包。
1.確認待轉換的.py文件可正確運行,不存在語法錯誤。如ccc.py
2.執行 pyinstaller -F ${Python腳本名} 完成文件轉換。.exe文件生成的絕對路徑會在倒數第二行顯示,通常位於當前目錄下dist所在目錄下。轉換後的.exe文件名與python文件名相同。如下圖所示
1.如果Python腳本使用到了第三方庫,如何打包?
方法一:將第三方庫對應的包復制到待打包python腳本的同目錄下,再執行打包命令。
方法二:pyinstaller.exe -F 路徑文件名.py 路徑文件名.py
2.我的python腳本主要是命令行輸出,但是程序執行完就退出無法查看相關信息,如何處理?
在python腳本最後一行添加命令:os.system('pause') 或者 raw_input('Press enter any key to exit...')
3.我想給我的打包後的執行程序換個圖標,如何處理?
使用參數-i。如命令:pyinstaller -F -i tupianqq.ico ccc.py。文件後綴名必須是.ico
4.程序運行出現CMD窗口,如何去除?
帶上參數-w即可。pyinstaller.exe -F call_login.py -w (-w表示去掉控制台窗口顯示)
5.pip配置鏡像源參考