python如何編譯成exe
Python 程式都是指令碼的方式,一般是在解析器裡執行,如果要釋出出去,需要提前安裝解析器才可以執行,為了在 Windows 裡方便釋出,只要點選一個 EXE 檔案執行,並且打包所需要庫檔案,這樣釋出給使用者使用就會更方便。
PyInstaller
PyInstaller 是一個十分有用的第三方庫,可以用來打包 python 應用程式,打包完的程式就可以在沒有安裝 Python 直譯器的機器上執行了。
更多相關知識,可以參考這篇文章:《》
它能夠在 Windows、Linux、 Mac OS X 等作業系統下將 Python 原始檔打包,透過對原始檔打包, Python 程式可以在沒有安裝 Python 的環境中執行,也可以作為一個 獨立檔案方便傳遞和管理。
PyInstaller 支援 Python 2.7 / 3.4-3.7。可以在 Windows、Mac OS X 和 Linux 上使用,但是並不是跨平臺的,而是說你要是希望打包成 .exe 檔案,需要在 Windows 系統上執行 PyInstaller 進行打包工作。
下面我們以 Windows 為例來進行程式的打包工作。
安裝
pip install pyinstaller # 或者 python -m pip install pyinstaller
使用
pyinstaller -F helloworld.py
其中,-F 表示打包成單獨的 .exe 檔案,這時生成的 .exe 檔案會比較大,而且執行速度回較慢。僅僅一個 helloworld 程式,生成的檔案就 5MB 大。
另外,使用 -i 還可以指定可執行檔案的圖示;
-w 表示去掉控制檯視窗,這在 GUI 介面時非常有用。不過如果是命令列程式的話那就把這個選項刪除吧!
PyInstaller 會對指令碼進行解析,並做出如下動作:
1、在指令碼目錄生成 helloworld.spec 檔案;
2、建立一個 build 目錄;
3、寫入一些日誌檔案和中間流程檔案到 build 目錄;
4、建立 dist 目錄;
5、生成可執行檔案到 dist 目錄;
執行流程:
$ pyinstaller -F helloworld.py 838 INFO: PyInstaller: 3.4 839 INFO: Python: 3.4.3 841 INFO: Platform: Windows-8-6.2.9200 842 INFO: wrote d:codePythonpyinstallerhelloworld.spec 858 INFO: UPX is not available. 885 INFO: Extending PYTHONPATH with paths ['d:\code\Python\pyinstaller', 'd:\code\Python\pyinstaller'] 886 INFO: checking Analysis 887 INFO: Building Analysis because Analysis-00.toc is non existent 888 INFO: Initializing module dependency graph... 890 INFO: Initializing module graph hooks... 899 INFO: Analyzing base_library.zip ... 6225 INFO: Processing pre-find module path hook distutils 11387 INFO: running Analysis Analysis-00.toc 12012 INFO: Caching module hooks... 12022 INFO: Analyzing d:codePythonpyinstallerhelloworld.py 12027 INFO: Loading module hooks... 12028 INFO: Loading module hook "hook-encodings.py"... 12395 INFO: Loading module hook "hook-xml.py"... 13507 INFO: Loading module hook "hook-pydoc.py"... 13508 INFO: Loading module hook "hook-distutils.py"... 13606 INFO: Looking for ctypes DLLs 13662 INFO: Analyzing run-time hooks ... 13677 INFO: Looking for dynamic libraries 13894 INFO: Looking for eggs 13895 INFO: Using Python library C:WINDOWSsystem32python34.dll 13895 INFO: Found binding redirects: [] 13915 INFO: Warnings written to d:codePythonpyinstallerbuildhelloworldwarn-helloworld.txt 14035 INFO: Graph cross-reference written to d:codePythonpyinstallerbuildhelloworldxref-helloworld.html 14287 INFO: checking PYZ 14287 INFO: Building PYZ because PYZ-00.toc is non existent 14288 INFO: Building PYZ (ZlibArchive) d:codePythonpyinstallerbuildhelloworldPYZ-00.pyz 15836 INFO: Building PYZ (ZlibArchive) d:codePythonpyinstallerbuildhelloworldPYZ-00.pyz completed successfully. 15883 INFO: checking PKG 15884 INFO: Building PKG because PKG-00.toc is non existent 15884 INFO: Building PKG (CArchive) PKG-00.pkg 18528 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully. 18536 INFO: Bootloader D:programPython34libsite-packagesPyInstallerbootloaderWindows-64bitrun.exe 18537 INFO: checking EXE 18537 INFO: Building EXE because EXE-00.toc is non existent 18538 INFO: Building EXE from EXE-00.toc 18538 INFO: Appending archive to EXE d:codePythonpyinstallerdisthelloworld.exe 18548 INFO: Building EXE from EXE-00.toc completed successfully.
生成檔案:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/430/viewspace-2836660/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 編譯成 exePython編譯
- dotnet core如何編譯exe編譯
- 編譯 asp 應用程式成為 exe 檔案 (轉)編譯
- Gluon 編譯 JavaFx -> exe編譯Java
- scss如何編譯成css?CSS編譯
- Windows下使用Graalvm將Javafx應用編譯成exeWindowsLVMJava編譯
- 寫好了.java編譯成.class,用什麼打包生成.exeJava編譯
- python如何編譯Python編譯
- Python將py檔案編譯為exe的方法Python編譯
- 編譯器-Javac.exe(轉)編譯Java
- Python PyInstaller 安裝方法 及簡單的編譯exePython編譯
- 如何把C/C++程式編譯成Python模組-超實用C++編譯Python
- Python下編譯py成pyc和pyoPython編譯
- go編譯靜態檔案到exeGo編譯
- python pyinstaller打包的exe 反編譯問題記錄 破解加密Python編譯加密
- pyinstaller打包python成.exe檔案Python
- Python是如何編譯執行的Python編譯
- 如何將一個Java檔案編譯成classJava編譯
- python2 反編譯pyinstaller打包的可執行exe檔案Python編譯
- .NET 中的動態編譯(生成exe檔案)編譯
- qt編譯報錯 無法執行“rc.exe”QT編譯
- python的編譯Python編譯
- [bazel]-如何編譯編譯
- 如何把JAVA程式封裝成EXE檔案Java封裝
- 有幾種工具可以將 PHP 指令碼編譯成二進位制可執行檔案EXEPHP指令碼編譯
- 用py2exe將python檔案轉換成exe可執行程式Python行程
- MATLAB2017b庫編譯及生成exeMatlab編譯
- matlab編譯exe問題具體解決辦法Matlab編譯
- 編譯器如何生成彙編編譯
- 如何使用Python編寫一個Lisp直譯器PythonLisp
- python 編譯失敗Python編譯
- python編譯備忘Python編譯
- 如何用cmake編譯編譯
- 如何讓Python指令碼成為在Windows環境中執行的exe檔案Python指令碼Windows
- [譯] 如何成為前端大牛前端
- python開發編譯器Python編譯
- Python Extension 編譯問題Python編譯
- 如何編譯 Linux 核心編譯Linux