py2exe打包python成.exe文件

py2exe打包python.exe文件

打包過程和結(jié)果

1螟加、創(chuàng)建setup腳本打包文件,其中設(shè)置打包的屬性和方法。注意:盡量將被打包文件和此打包腳本放在同目錄下(因?yàn)樵趪L試非同目錄下時(shí),出現(xiàn)了非可再現(xiàn)性的尋找被打包文件失敗)

2闻妓、在cmd命令行,進(jìn)入setup打包腳本所在命令行掠械,執(zhí)行此腳本文件(python setup.py py2exe)

3、默認(rèn)出現(xiàn)built和dist兩個(gè)文件注祖。dist文件中的內(nèi)容即為打包程序的內(nèi)容猾蒂,也即可發(fā)布的內(nèi)容。


打包過程遇到的問題:

1是晨、Win10系統(tǒng)文件缺失肚菠,值后發(fā)現(xiàn)這些文件可以在dll_exclude[]屬性中設(shè)置不包含進(jìn)來(lái)。在使用Win7系統(tǒng)時(shí)罩缴,并沒有出現(xiàn)文件缺失蚊逢。參考以下文件,其中包括:

"api-ms-win-core-string-l1-1-0",

"api-ms-win-core-libraryloader-l1-2-1.dll",

"api-ms-win-core-profile-l1-1-0.dll",

"api-ms-win-core-processthreads-l1-1-2.dll",

"api-ms-win-core-handle-l1-1-0.dll",

"api-ms-win-core-registry-l1-1-0.dll",

"api-ms-win-core-file-l1-2-1.dll",

"api-ms-win-core-heap-l1-2-0.dll",

"api-ms-win-core-version-l1-1-1.dll",

"api-ms-win-core-heap-l2-1-0.dll",

"api-ms-win-core-io-l1-1-1.dll",

"api-ms-win-core-localization-l1-2-1.dll",

"api-ms-win-core-sysinfo-l1-2-1.dll",

"api-ms-win-core-synch-l1-2-0.dll",

"api-ms-win-core-errorhandling-l1-1-1.dll",

"api-ms-win-core-version-l1-1-0.dll",

"api-ms-win-core-string-l2-1-0.dll",

"api-ms-win-security-base-l1-2-0.dll",

"api-ms-win-eventing-provider-l1-1-0.dll",

"api-ms-win-core-com-l1-1-1.dll",

"api-ms-win-core-memory-l1-1-2.dll"

2箫章、MemoryLoadLibrary failed loading cv2.pyd此錯(cuò)誤通過修改zipfile = None烙荷,使其生成打包文件后解壓縮。再打開程序時(shí)檬寂,程序打包成功终抽,可正常運(yùn)行。


Py2exe打包腳本屬性設(shè)置問題:

1、Version昼伴,Description匾旭,Name不是必須的。

2圃郊、Windows 創(chuàng)建一個(gè)圖形用戶界面程序

3价涝、Console 創(chuàng)建一個(gè)控制臺(tái)程序

4、dist_dir 打包生成的文件放在dist下持舆,可設(shè)置存放目錄(一般沒有特殊要求色瘩,可以不需修改±袅可使用相對(duì)路徑)

5泞遗、Compressed默認(rèn)為0,1為指定壓縮文件(library.zip)的行為;0為不壓縮席覆。

6史辙、Zipfiles 來(lái)配置共享壓縮文件的生成目錄和文件名,默認(rèn)是在目錄 dist 下生成一個(gè) “l(fā)ibrary.zip”文件佩伤,打包了 .exe文件運(yùn)行需要的 .pyd 和 .dll 文件(不包含配置文件等)聊倔。

7、Optimize 打包優(yōu)化生巡,合法值是字符串('','O','OO')或者整型數(shù)字 (0, 1, or 2)耙蔑。0時(shí),不進(jìn)行優(yōu)化孤荣,壓縮包大小較大甸陌,打包的編譯文件為 .pyc;1時(shí)盐股,進(jìn)行少量?jī)?yōu)化钱豁,壓縮包大小略小,打包的編譯文件為 .pyo疯汁;2時(shí)牲尺,優(yōu)化級(jí)別最高,壓縮包大小也明顯變小幌蚊,打包的編譯文件為 .pyo谤碳。

8、Bundle_files 打包綁定溢豆,64位不支持此屬性蜒简。 0:pyd和dll文件不會(huì)被打包到exe文件中; 1:pyd和dll文件會(huì)被打包到exe文件中,且不能從文件系統(tǒng)中加載python模塊; 2:pyd和dll文件會(huì)被打包到exe文件中沫换,但是可以從文件系統(tǒng)中加載python模塊臭蚁。

注:.py: 這是編寫的源文件最铁。

????.pyc: 這是編譯過的二進(jìn)制代碼文件. 如果導(dǎo)入一個(gè)模塊, python 將創(chuàng)建一個(gè) *.pyc 文件,文件中內(nèi)為二進(jìn)制碼垮兑,這樣可以在再次導(dǎo)入時(shí)更容易(更快)冷尉。

.pyo: 這是一個(gè)當(dāng)優(yōu)化等級(jí) (-O) 開啟時(shí)生成的 *.pyc 文件。

.pyd:這個(gè)相當(dāng)于一個(gè)windows dll文件.實(shí)際上.pyd文件就是dll文件系枪,只是略有不同雀哨。

9、Date_files文件可執(zhí)行文件所需數(shù)據(jù)私爷。在python27中雾棺,需要的MSVCP90.dll不能單獨(dú)發(fā)布,必須確保py2exe復(fù)制所有的三個(gè)dll文件和manifest文件到工程目錄dist下衬浑,并且放在一個(gè)名為'Microsoft.VC90.CRT'的子目錄下捌浩。

參考做法為:from glob import glob ?data_files =[("Microsoft.VC90.CRT",glob(r'C:\Program Files\Microsoft Visual Studio freeze_support9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*'))]

10、ascii ?0:不包含編碼和解碼器工秩;1則反之尸饺。

11、出現(xiàn)的QPixmap::scaled: Pixmap is a null pixmap問題助币,這是由于pyqt和qt都是默認(rèn)的png格式的圖片浪听,打包后,會(huì)找不到j(luò)pg格式的圖片眉菱,所以在打包過程中需要把pyqt4文件中的imageformats文件夾下的dll文件導(dǎo)入迹栓。這是jpg格式的圖片需要的插件。

12俭缓、類標(biāo)識(shí)符無(wú)屬性克伊,產(chǎn)生的CLSID無(wú)屬性。

typelibs 列表:需要包含的gen_py產(chǎn)生的typelibs

13华坦、多進(jìn)程打包遇到的程序不正常執(zhí)行問題答毫,需要在多進(jìn)程之前調(diào)用freeze_support()函數(shù)。經(jīng)試驗(yàn)季春,最好在函數(shù)開始執(zhí)行的時(shí)候,首先調(diào)用此函數(shù)消返。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末载弄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子撵颊,更是在濱河造成了極大的恐慌宇攻,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倡勇,死亡現(xiàn)場(chǎng)離奇詭異逞刷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門夸浅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)仑最,“玉大人,你說我怎么就攤上這事帆喇【剑” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵坯钦,是天一觀的道長(zhǎng)预皇。 經(jīng)常有香客問我,道長(zhǎng)婉刀,這世上最難降的妖魔是什么吟温? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮突颊,結(jié)果婚禮上鲁豪,老公的妹妹穿的比我還像新娘。我一直安慰自己洋丐,他們只是感情好呈昔,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著友绝,像睡著了一般堤尾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上迁客,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天郭宝,我揣著相機(jī)與錄音,去河邊找鬼掷漱。 笑死粘室,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卜范。 我是一名探鬼主播衔统,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼海雪!你這毒婦竟也來(lái)了锦爵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤奥裸,失蹤者是張志新(化名)和其女友劉穎险掀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湾宙,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡樟氢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年冈绊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埠啃。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡死宣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出霸妹,到底是詐尸還是另有隱情十电,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布叹螟,位于F島的核電站鹃骂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏罢绽。R本人自食惡果不足惜畏线,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望良价。 院中可真熱鬧寝殴,春花似錦、人聲如沸明垢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)痊银。三九已至抵蚊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溯革,已是汗流浹背贞绳。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留致稀,地道東北人冈闭。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像抖单,于是被迫代替她去往敵國(guó)和親萎攒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容