[Python]通過(guò)Pyinstaller庫(kù)打包我的一個(gè)IP地址查詢(xún)小工具為.exe可執(zhí)行文件

1. 安裝pyinstaller庫(kù)

python -m pip install pyinstaller

2. 打包ip.py文件

C:\Users\ws\Desktop\crawler\temp > pyinstaller -F -c --icon=my.ico ip.py
62 INFO: PyInstaller: 3.3.1
62 INFO: Python: 3.6.5
62 INFO: Platform: Windows-10-10.0.16299-SP0
......
9148 INFO: Appending archive to EXE   
C:\Users\ws\Desktop\crawler\temp\dist\ip.exe
9148 INFO: Building EXE from out00-EXE.toc completed successfully.

我這里要打包的文件是C:\Users\ws\Desktop\crawler\temp\ip.py, 文件圖標(biāo)名為my.ico, 在控制臺(tái)運(yùn)行(沒(méi)做GUI)
pyinstaller里的主要參數(shù)
-icon=圖標(biāo)路徑
-F 打包成一個(gè)exe文件
-w 使用窗口,無(wú)控制臺(tái)(有GUI的程序要用到)
-c 使用控制臺(tái)儒溉,無(wú)窗口
-D 創(chuàng)建一個(gè)目錄送浊,里面包含exe以及其他一些依賴(lài)性文件
–version-file file_version_info.txt :表示將標(biāo)準(zhǔn)版本信息文件的內(nèi)容賦給exe文件的屬性
更多請(qǐng)鍵入 pyinstaller -h 來(lái)查看參數(shù)

輸出結(jié)果

dist目錄下是exe文件,可單獨(dú)執(zhí)行。


3. (可選)打包程序時(shí)鍵入版本信息


  • 在ip.py所在目錄下按以上示例創(chuàng)建一個(gè)版本信息文件:file_version_info.txt 文本文件潦牛。
    我這里給出 file_version_info.txt 的具體格式示例。
# UTF-8
#
# For more details about fixed file info 'ffi' see:
# http://msdn.microsoft.com/en-us/library/ms646997.aspx
VSVersionInfo(
  ffi=FixedFileInfo(
    # filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
    # Set not needed items to zero 0.
    filevers=(0, 1, 0, 0),
    prodvers=(1, 1, 0, 0),
    # Contains a bitmask that specifies the valid bits 'flags'r
    mask=0x3f,
    # Contains a bitmask that specifies the Boolean attributes of the file.
    flags=0x28,
    # The operating system for which this file was designed.
    # 0x4 - NT and there is no need to change it.
    OS=0x40004,
    # The general type of file.
    # 0x1 - the file is an application.
    fileType=0x2,
    # The function of the file.
    # 0x0 - the function is not defined for this fileType
    subtype=0x0,
    # Creation date and time stamp.
    date=(0, 0)
    ),
  kids=[
    StringFileInfo(
      [
      StringTable(
        u'000004b0',
        [StringStruct(u'FileVersion', u'0.1.0.0'),
        StringStruct(u'ProductVersion', u'1.1.0.0'),
        StringStruct(u'OriginalFilename', u'ip'),
        StringStruct(u'InternalName', u'ip'),
        StringStruct(u'FileDescription', u'<無(wú)>'),
        StringStruct(u'CompanyName', u'<小白王_960064995>'),
        StringStruct(u'LegalCopyright', u'?小白王_960064995'),
        StringStruct(u'ProductName', u'ip'),
        StringStruct(u'Comments', u'<IP地址查詢(xún)>'),
        StringStruct(u'LegalTrademarks', u' '),
        StringStruct(u'e', u''),
        StringStruct(u'ld', u' '),
        StringStruct(u'i', u''),
        StringStruct(u'ld', u'D')])
      ]), 
    VarFileInfo([VarStruct(u'Translation', [0, 1200])])
  ]
)
  • 打開(kāi)系統(tǒng)cmd鍵入:pyinstaller -F -c --icon=my.ico --version-file file_version_info.txt ip.py (注意:重新打包挡育!巴碗,示例)
C:\Users\ws\Desktop\crawler\temp>pyinstaller -F -c --icon=my.ico --version-file file_version_info.txt ip.py
62 INFO: PyInstaller: 3.3.1
62 INFO: Python: 3.6.5
62 INFO: Platform: Windows-10-10.0.16299-SP0
62 INFO: wrote C:\Users\ws\Desktop\crawler\temp\ip.spec
62 INFO: UPX is not available.
78 INFO: Extending PYTHONPATH with paths
['C:\\Users\\ws\\Desktop\\crawler\\temp',
 'C:\\Users\\ws\\Desktop\\crawler\\temp']
78 INFO: checking Analysis
78 INFO: Building Analysis because out00-Analysis.toc is non existent
78 INFO: Initializing module dependency graph...
78 INFO: Initializing module graph hooks...
78 INFO: Analyzing base_library.zip ...
......
9146 INFO: Writing RT_ICON 1 resource with 4264 bytes
9177 INFO: Appending archive to EXE C:\Users\ws\Desktop\crawler\temp\dist\ip.exe
9177 INFO: Building EXE from out00-EXE.toc completed successfully.
  • 成功!


    對(duì)比

    Running ip.exe

公眾號(hào):勝言
個(gè)人博客:wangsheng.tech

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末即寒,一起剝皮案震驚了整個(gè)濱河市橡淆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌母赵,老刑警劉巖逸爵,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凹嘲,居然都是意外死亡痊银,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)施绎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)溯革,“玉大人贞绳,你說(shuō)我怎么就攤上這事≈孪。” “怎么了冈闭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)抖单。 經(jīng)常有香客問(wèn)我萎攒,道長(zhǎng),這世上最難降的妖魔是什么矛绘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任耍休,我火速辦了婚禮,結(jié)果婚禮上货矮,老公的妹妹穿的比我還像新娘羊精。我一直安慰自己,他們只是感情好囚玫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布喧锦。 她就那樣靜靜地躺著,像睡著了一般抓督。 火紅的嫁衣襯著肌膚如雪燃少。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天铃在,我揣著相機(jī)與錄音阵具,去河邊找鬼。 笑死定铜,一個(gè)胖子當(dāng)著我的面吹牛阳液,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宿稀,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼趁舀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赖捌!你這毒婦竟也來(lái)了祝沸?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤越庇,失蹤者是張志新(化名)和其女友劉穎罩锐,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體卤唉,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涩惑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桑驱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竭恬。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡跛蛋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痊硕,到底是詐尸還是另有隱情赊级,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布岔绸,位于F島的核電站理逊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏盒揉。R本人自食惡果不足惜晋被,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刚盈。 院中可真熱鬧羡洛,春花似錦、人聲如沸扁掸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谴分。三九已至锈麸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牺蹄,已是汗流浹背忘伞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沙兰,地道東北人氓奈。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鼎天,于是被迫代替她去往敵國(guó)和親舀奶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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