py編譯exe
⑴ 如何將自己編寫的.py文件轉換為可執行.exe文件
利用python寫了一個小腳本想要傳給使用Windows但沒有裝Python的朋友執行,這時候就可以利用將檔案包裝成exe檔案,讓沒有Python的朋友也可以執行。本篇將介紹利用套件「PyInstaller」製作exe檔。
1|0安裝方法
1234
#安裝pyinstallerpip install pyinstaller#安裝依賴pip install pywin32-ctypes
2|0常用參數介紹
pyinstaller -h來查看參數
-F打包成一個exe文件
-i圖標路徑
-w使用視窗,無控制台
-c使用控制台,無視窗
-D創建一個目錄,包含exe以及其他一些依賴性文件
編譯文件時,我們通常使用如下命令:
pyinstaller -F -w -i favo.ico main.py
3|0靜態文件
對於python所依賴的圖片,config.yaml等靜態文件,pyinstall不會自動打包,需要手動在main.py(所需要打包的入口文件)的相同目錄中尋找main.spec,修改datas依賴,才可以自動打包到exe的相同目錄下,然後執行即可
datas是一個數組,每個子項是一個tuple,其中tuple的第一個參數是你要打包的源路徑,第二個參數是打包後的名字
12345678910111213141516
# -*- mode: python -*- block_cipher = None a = Analysis(['ui.py'],pathex=['C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test'],binaries=[],datas=[('C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test\\images','images'),('C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test\\question.yaml','question.yaml')],hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
然後執行:
pyinstaller -F main.spec
4|0示例
如下圖所示,我們編寫一個輸出helow pyinstaller的Python程序,並利用input()使程序可以暫時停在輸出畫面。
12
print('helow pyinstaller')input('please wait:')
編譯python為exe,編譯過程中會自動安裝相關依賴
pyinstaller -F hello.py
編譯過程中會產生如下輸出:
1234567891011121314
…6942 INFO: checking PY6944 INFO: Building because toc changed6944 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz7559 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz completed successfully.7568 INFO: checking PKG7569 INFO: Building because toc changed7569 INFO: Building PKG(CArchive)PKG-00.pkg9407 INFO: Building PKG(CArchive)PKG-00.pkg completed successfully.9409 INFO: Bootloader c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe9409 INFO: checking EXE9411 INFO: Building because toc changed9411 INFO: Building EXE from EXE-00.toc9412 INFO: Appending archive to EXE C:\Users\user\Desktop\test\dist\test.exe9455 INFO: Building EXE from EXE-00.toc completed successfully.
通過輸出可以看出pyinstaller進行了如下操作:
會先建立一個hello.spec
建立「build」文件夾
建立log紀錄檔與工作檔案於文件夾build中
建立「dist」文件夾
建立執行檔(.exe)在「dist」文件夾
4|1注意事項
執行檔案可在win8/win10,64位的電腦運行,但win7 x64和其餘所有32位失敗,會提示不兼容,若要能32位與64位皆可運行,就要在Python 32位的環境下編譯PyInstaller打包exe,才能在32位與64位成功。
⑵ 怎樣用pycharm 把.py文件編譯成可以單獨運行的exe文件
解釋器文件和解釋器
先解釋兩個概念;解釋器文件和解釋器。
l 解釋器文件:一種文本文件,開頭通常是:#! pathname [option-argument];比較常見的是#! /bin/bash,shell腳本和python腳本都屬於解釋器文件。
l 解釋器:解釋器文件第一行中pathname指定的程序,如bash。
3.1 解釋器文件的執行
當執行(exec)"解釋器"文件時,exec系統調用會識別這種文件,內核使調用exec函數的進程實際執行的並不是該"解釋器文件",而是pathname指定的解釋器。
我們可以自己寫一個解釋器,如之前所寫的foo.c:
l foo.c
#include <stdio.h>
int
main(int argc,char* argv[])
{
⑶ 怎樣將寫好的.py文件生成exe可執行文件
python製作exe可執行文件的方法---使用pyinstallerpython生成windows下exe
格式的可執行程序有三種可選方案:py2exe是大家所熟知的,今天要介紹pyinstaller,這個工具全平台可用。我曾使用python製作一個工
具程序供公司同事使用後,由於公司使用maclinuxwindows都有很多,就使用過它來將程序做成可執行文件,兼容性好,只是會使得程序在
linux平台和mac平台啟動較慢(windows還是比較快的),但基本夠用。安裝完pyinstaller之後就可以開始了。1.使用
pyinstaller生成可執行文件的方法1.1將依賴文件集中到一個文件夾:pyinstaller-D-wmain.py#把main.py替換成
你的主入口python文件即可。-w參數代表main.py是一個窗體程序。1.2將所有依賴文件都打包到同一個可執行文件
中:pyinstaller-F-wmain.py2.調查pyinstaller生成程序的載入過程使用如下命令,可以得到運行時的跟
蹤,tracing,loader的載入過程。pyinstaller-Fwdaui.py#把aui.py換成你需要偵測的文件即可。
⑷ 使用py2exe 編譯 exe總是出錯
setup(console=["hello.py"]) 文件名要加引號
⑸ python寫的程序,轉成了exe文件,怎麼進行反編譯為python源碼
1、電腦桌面,輸入「win+R」組合鍵,在彈出窗口中輸入「cmd」,點擊確定。
⑹ 怎麼把多個py用py2exe編譯成一個exe文件
一、簡介py2exe是一個將python腳本轉換成windows上的可獨立執行的可執行程序(*.exe)的工具,這樣,你就可以不用裝python而在windows系統上運行這個可執行程序。
py2exe已經被用於創建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的獨立程序。py2exe是發布在開源許可證下的。
二、安裝py2ex ownloads.sourceforge.net/py2exe下載並運行與你所安裝的Python對應的py2exe版本的installer,這將安裝py2exe和相應的例子;這些例子被安裝在lib\site-packages\py2exe\samples目錄下。
三、py2exe的用法如果你有一個名為helloworld.py的python腳本,你想把它轉換為運行在windows上的可執行程序,並運行在沒有安裝python的windows系統上,那麼首先你應寫一個用於發布程序的設置腳本例如mysetup.py,在其中的setup函數前插入語句import py2exe 。
mysetup.py示例如下:
[python] view plain print?
#mysetup.py
from distutils.core import setup
import py2exe
setup(console=["helloworld.py"])
然後按下面的方法運行mysetup.py:
[python] view plain print?
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"]既可。
⑺ 將python生成的 py文件轉為 exe文件的原理是怎樣的
以py2exe為例,它是將所需的py編譯為pyc並打包;若需要其他的數據文件比如DLL或PIC等類型的文件,可以使用參數將它加入到相應目錄;它會將所需的python運行環境拷入目標目錄所以不用擔心在未安裝python的系統中的安裝問題。
做好的EXE文件,或相應的文件夾有可能達到30MB以上,其實就是將所需的庫都給拷過去了。
那裡的exe文件其實只是一個通用的啟動器,運行主體是存在於壓縮包內的pyc文件。
⑻ python可視化編程、打包exe(pycharm)
python3安裝指令: pip install PyQt5
python2安裝指令: pip install python-qt5
添加擴展插件:File-->setting-->Tools-->External Tools,如下圖:
網上教程有很多,有不一樣的,但是宗旨都是用把 .ui 文件用指令編譯成 .py 文件。不一樣的無非就是路徑的寫法,指令的寫法不同。
比如方法二:
不熟悉python的坑:
這個命令是把資源文件.qrc轉換為.py文件。命令:pyrcc5 -o xxx.qrc xxx.py
Arguments這邊我就不誤導大家了,詳細的可以網上自行搜索pyinstaller。這里簡單說下我這裡面的意思,因為我的工程入口文件是Main.py。-F(大寫)就是打包成可執行文件exe -w 程序運行時不顯示命令行窗口 -i 是給你的可執行程序加個圖標。 tool.icon是我工程這個圖標的資源名。這個資源位置和入口文件同級別。
在打包過程中可能遇到的 坑 ,但願你們沒遇到:
⑼ Windows下怎麼把python腳本編譯成exe
我的是這個文件 py2exe-0.6.9.win32-py2.6.exe 你自己找,找到對應你python的版本安裝。安裝之後打開解釋器輸入>>> import py2exe
>>> import distutils如果沒有問題就可以了。現在說步驟:1、准備你要編譯的python腳本,比如:a.py,放在C:\compile\a.py2、編寫另一個python腳本setup.py,內容如下:import distutils
import py2exe
distutils.core.setup(windows=[『C:\\compile\\a.py』])3、把你的setup.py放在某個位置,比如C:\compile\setup.py打開命令行輸入 C:\compile\setup.py py2exe 編譯生成4、然後會在C:\Users\你的用戶名\ 下生成一個dist的文件, 裡面有個a.exe,雙擊就會執行你的腳本。
⑽ 如何使用pyinstaller將py文件生成exe文件
生成單一的exe文件:pyinstaller.py-F..\BlogsToWordpress\BlogsToWordpress.py主要選項包括:-F,–onefile打包成一個exe文件。-D,–onedir創建一個目錄,包含exe文件,但會依賴很多文件(默認選項)。-c,–console,–nowindowed使用控制台,無界面(默認)-w,–windowed,–noconsole使用窗口,無控制台生成單一的exe不顯示黑框:pyinstaller.py-F-w..\BlogsToWordpress\BlogsToWordpress.py