(轉)關於python打包成exe的一點經驗之談

https://blog.csdn.net/ztsghjls/article/details/54426169

我經常用python寫些腳本什麼的,有時候腳本寫完以後,每次運行都得在IDE打開在運行,很麻煩,所以經常將python編譯成exe.SO...有了一點經驗,在這和大家分享一下。 
     python 打包成exe 主要有兩種,一種是py2exe,另一種便是pyInstaller,之前我是用py2exe的,但是我後來發現py2exe存在問題:1,打包好的 exe只能在相同的系統下運行,比如你在XP系統用py2exe打包好的exe只能在XP上運行,在win7上肯定有問題,而且也是存在在別的XP機子上也可能不能運行,因爲一些別的機子可能會缺少dll文件什麼的,作者我當時之所以拋棄py2exe 也是因爲這個原因;2,打包的文件也需要打包同exe下的dll,和一些庫的壓縮包,不然exe根本跑不起來

     所以作者強烈建議大家在python打包的話使用pyInstaller,在這我主要同大家分享pyInstaller的打包方法. 
     話不多說,開始..... 
     pyInstaller是一款用於將pyhon程序打包成exe文件的工具,pyInstaller不是一個python的包, 只需要把pyInstaller的文件下載下來放到任意爲止都可以,也就是說pyInstaller相當於獨立出來專門幹打包python的工具,這貨是工具不是庫,也不是包... 
     1.下載安裝pyinstaller,下載網址:http://www.pyinstaller.org/去下載,然後解壓到任意目錄.(注意:在pyinstaller2.0之前的版本要是移動這個文件夾的話,需要改一些配置,不然pyinstaller會因爲你的移動不能使用.這個和後面的配置環境有關.pyinstaller2.0的版本就沒有限制.) 
     2.編譯配置環境(以解壓到F:盤爲例子) 
        ①, pyinstaller-2.0的方法: 
             打開cmd cd進入解壓後的目錄下的sorce下,即:cd  F:\pyinstaller-2.0\source 
             運行 python ./waf configure build install 
             *(可能需要安裝pywin32.下載並安裝即可,重新運行命令即可)

        ②,  pyinstaller-1.5 
              打開cmd cd進入pyinstaller解壓目錄,cd  F:\pyinstaller-1.5                   
              運行   python Configure.py 
              *(可能需要安裝pywin32.下載並安裝即可,重新運行命令即可) 
              結果提示保存在config.dat文件中。其中config.dat文件存放在pyinstaller的根目錄。 
     3. 將自己寫的py程序打包exe 
          ①, pyinstaller-2.0的方法: 
               將自己寫的py文件(HelloWorld.py)拷貝到pyinstaller解壓目錄下, 
               打開cmd cd進入解壓後的目錄下,即:cd  F:\pyinstaller-2.0\ 
               運行命令 python pyinstaller.py [opts] yourprogram.py 
               在此處則是運行:python pyinstaller.py [opts] HelloWorld.py 
               在目錄下會生成一個helloworld的文件夾,裏面存放 HelloWorld.spec文件,;兩個文件夾(dist,buildi),可以運行的exe則放在/dist/yourprogram下

          ②,  pyinstaller-1.5 
                將自己寫的py文件(HelloWorld.py)拷貝到pyinstaller解壓目錄下, 
                打開cmd cd進入解壓後的目錄下,即:cd  F:\pyinstaller-1.5\ 
                pyinstaller-1.5和 pyinstaller-2.0 的區別來了。 
                在 pyinstaller-1.5 中你先需要生成spec文件,然後通過spec文件在生成exe文件,而 pyinstaller-2.0 在執行命令(請看上面)後會同時吧exe和spec文件都生成出來了 
                所以在 pyinstaller-1.5 你得先生成spec文件: 
                python Makespec.py  [opts] yourprogram.py 
                    運行命令: python Makespec.py  [opts] HelloWorld.py 
                此時在此目錄下生成的 HelloWorld文件夾,文件夾下有一個 HelloWorld.spec文件,將文件在拷貝到目錄(F:\pyinstaller-1.5\)下 
                   運行命令: python Build.py HelloWorld.spec 
     4.你會發現按照上面的方法在/yourprogram/dist/yourprogram下除了需要的exe文件,也存在很多dll文件,然後你會開始抱怨作者我坑爹了吧.... 
        哈哈,如果你這麼發現了,說明,你已經完成用最基礎的pyinstaller打包了,關於如何pyinstaller請往下看: 
        不管是pyinstaller-1.5還是pyinstaller-2.0,要想打包成一個文件,或者將文件的圖標修改等等操作,這些都與你在運行命令時有關係,還記得命令是什麼嗎? 
           pyinstaller-2.0 是: 
               python pyinstaller.py [opts] yourprogram.py 
           pyinstaller-1.5 是: 
               python Makespec.py  [opts] yourprogram.py 
          那些打包成一個文件,或者將文件的圖標修改等等操作都和這個 [opts] 有關係. 
          下面舉些例子(客官一看便知,以 pyinstaller-2.0爲例子,1.5通用): 
                ①, 打包成一個文件: 
                         python pyinstaller.py --onefile  yourprogram.py 
                ②,修改exe的圖標(D:\BabyWandH\src\faviconw.ico爲圖標的存放路徑): 
                          python pyinstaller.py --onefile  --icon=D:\BabyWandH\src\faviconw.ico   yourprogram.py 
             [opts]的一些說明(具體可以看pyinstaller官網http://www.pyinstaller.org/expor ... talling-pyinstaller):

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章