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程序
1. 手動製作python的exe可執行程序Python沒有內建一個編譯為exe的功能。給python程序的部署帶來不少的麻煩。所以就會出現一些py2exe之類的很不錯的工具,用於自動把.py文件編譯為.exe文件。
最近抽空研究了一下手動實現類似py2exe的功能,希望加強對python的了解。結果還相當不錯。把結果記錄下來,與大家共享。
1.1. 原理文中所描述的方法,基於python的以下幾個功能
1) python程序運行時,會在sys.path指定的路徑中查找庫文件。
2) python從2.3開始,支持從zip文件中import庫(支持.py,.pyc和.pyo,但不支持.pyd)
3) python提供C API,讓c語言的程序,可以很方便的調用python的程序
1.2. 實際步驟註:假設python安裝在c:\python25目錄中,最後的可執行文件放到d:\dist目錄中
1) 先去c:\python25\Lib目錄,把所有文件都復制出來,比如復制到d:\pythonlib目錄中
『叄』 如何用python寫exe程序
Win下發布應用
起因
今天實驗室同學看到我的乞丐版二輸入規則器,他挺感興趣的,也想要玩玩,但是他沒有裝python的環境,總不能讓他一直玩我電腦吧,所以想到了將程序打包成exe,直接運行!想法一出來,根本擋不住啊,說干就干,先網路python打包exe,一大堆答案,我整理了一下,大概有Py2exe和pyinstaller兩種,但是,我給你看張圖
如果覺得內容不夠細致,可以參考
用PyInstaller將python轉成可執行文件exe筆記或者用PyInstaller把Python代碼打包成單個獨立的exe可執行文件
補充
2016.7.7補坑: 基於python的參考文獻生成器beta已完成,歡迎下載和使用免費下載基於python的文獻生成器.exe
2016.7.8補充: 利用Pyinstaller編譯關聯文件成exe,只要輸入時候寫成pyinstaller -F main.py related.py即可,其中main為主函數,其中有import related.py的函數,只要把重要的放前面就好啦,然後最後的exe文件名會以第一個命名,也就是最後形成一個main.exe就是醬紫。修改spec文件,重新加上參數再編譯。按照正常步驟做過之後,在目錄中還會有一個spec文件,用編輯器打開,之後修改參數,保存後,在原來操作的cmd上寫入:pyinstaller main.spec即可,這個是我在gui圖像生成exe格式時候,圖片無法打包查閱到的,需要單獨添加
『肆』 如何將python文件做成exe程序
python製作exe可執行文件的方法---使用pyinstaller
python生成windows下exe格式的可執行程序有三種可選方案:
py2exe是大家所熟知的,今天要介紹pyinstaller,
這個工具全平台可用。
『伍』 python怎麼生成exe程序
環境:pycharm2018.1+win7+python3.7
工具:pyinstaller
1、安裝pyinstaller,cmd --> pip install pyinstaller
2、安裝完成後,打開cmd,輸入命令:pyinstaller -F *.py(星號為py文件的全路徑,如下圖)
如下圖顯示,打包成功,會顯示exe文件的位置,找到運行即可用。
推薦學習《Python教程》。
『陸』 python可以將程序編程.exe執行文件嗎
py2exe啊,一點也不老,穩定而且好用。
操作步驟如下:
如果你有一個名為helloworld.py的python腳本,你想把它轉換為運行在windows上的可執行程序,並運行在沒有安裝python的windows系統上,那麼首先你應寫一個用於發布程序的設置腳本例如mysetup.py,在其中的setup函數前插入語句import py2exe 。
mysetup.py示例如下:
# mysetup.py
from distutils.core import setup
import py2exe
setup(console=["helloworld.py"])
然後按下面的方法運行mysetup.py:
python mysetup.py py2exe
上面的命令執行後將產生一個名為dist的子目錄,其中包含了helloworld.exe,python24.dll,library.zip這些文件。
如果你的helloworld.py腳本中用了已編譯的C擴展模塊,那麼這些模塊也會被拷貝在個子目錄中,同樣,所有的dll文件在運行時都是需要的,除了系統的dll文件。
dist子目錄中的文件包含了你的程序所必須的東西,你應將這個子目錄中的所有內容一起發布。
默認情況下,py2exe在目錄dist下創建以下這些必須的文件:
1、一個或多個exe文件。
2、python##.dll。
3、幾個.pyd文件,它們是已編譯的擴展名,它們是exe文件所需要的;加上其它的.dll文件,這些.dll是.pyd所需要的。
4、一個library.zip文件,它包含了已編譯的純的python模塊如.pyc或.pyo
上面的mysetup.py創建了一個控制台的helloword.exe程序,如果你要創建一個圖形用戶界的程序,那麼你只需要將mysetup.py中的console=["helloworld.py"]替換為windows=["myscript.py"]既可。
py2exe一次能夠創建多個exe文件,你需要將這些腳本文件的列表傳遞給console或windows的關鍵字參數。如果你有幾個相關聯的腳本,那麼這是很有用的。
運行下面個命令,將顯示py2exe命令的所有命令行標記。
python mysetup.py py2exe --help