日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python PyInstaller 安装 和 使用教程( 打包生成 exe )

發布時間:2024/7/23 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python PyInstaller 安装 和 使用教程( 打包生成 exe ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

From:http://c.biancheng.net/view/2690.html

Python zipapp打包教程:http://c.biancheng.net/view/2687.html

?

?

在創建了獨立應用(自包含該應用的依賴包)之后,還可以使用 PyInstaller 將?Python?程序生成可直接運行的程序,這個程序就可以被分發到對應的 Windows 或 Mac OS X 平臺上運行。

?

?

安裝 PyInstalle

?

Python 默認并不包含 PyInstaller 模塊,因此需要自行安裝 PyInstaller 模塊。

安裝 PyInstaller 模塊與安裝其他 Python 模塊一樣,使用 pip 命令安裝即可。在命令行輸入如下命令:

pip install pyinstaller

強烈建議使用 pip 在線安裝的方式來安裝 PyInstaller 模塊,不要使用離線包的方式來安裝,因為 PyInstaller 模塊還依賴其他模塊,pip 在安裝 PyInstaller 模塊時會先安裝它的依賴模塊。

運行上面命令,應該看到如下輸出結果:

Successfully installed pyinstaller-x.x.x

其中的 x.x.x 代表 PyInstaller 的版本。

在 PyInstaller 模塊安裝成功之后,在 Python 的安裝目錄下的?Scripts(D:\Python\Python36\Scripts)?目錄下會增加一個 pyinstaller.exe 程序,接下來就可以使用該工具將 Python 程序生成 EXE 程序了。

?

?

PyInstaller 生成可執行程序

?

PyInstaller 工具的命令語法如下:pyinstaller 選項 Python 源文件
不管這個 Python 應用是單文件的應用,還是多文件的應用,只要在使用 pyinstaller 命令時編譯作為程序入口的 Python 程序即可。
PyInstaller工具是跨平臺的,它既可以在 Windows平臺上使用,也可以在 Mac OS X 平臺上運行。
在不同的平臺上使用 PyInstaller 工具的方法是一樣的,它們支持的選項也是一樣的。

PyInstaller 支持的常用選項

表 1 PyInstaller 支持的常用選項-h,--help查看該模塊的幫助信息
-F,-onefile產生單個的可執行文件
-D,--onedir產生一個目錄(包含多個文件)作為可執行程序
-a,--ascii不包含 Unicode 字符集支持
-d,--debug產生 debug 版本的可執行文件
-w,--windowed,--noconsolc指定程序運行時不顯示命令行窗口(僅對 Windows 有效)
-c,--nowindowed,--console指定使用命令行窗口運行程序(僅對 Windows 有效)
-o DIR,--out=DIR指定 spec 文件的生成目錄。如果沒有指定,則默認使用當前目錄來生成 spec 文件
-p DIR,--path=DIR設置 Python 導入模塊的路徑(和設置 PYTHONPATH 環境變量的作用相似)。也可使用路徑分隔符(Windows 使用分號,Linux?使用冒號)來分隔多個路徑
-n NAME,--name=NAME指定項目(產生的 spec)名字。如果省略該選項,那么第一個腳本的主文件名將作為 spec 的名字

在表 1 中列出的只是 PyInstaller 模塊所支持的常用選項,如果需要了解 PyInstaller 選項的詳細信息,則可通過 pyinstaller -h 來查看。

?

?

示例 1 :創建一個命令行程序

?

創建一個 app 目錄,
在該目錄下創建一個 test_2.py?文件,文件中包含如下代碼:

def say_word(word: str = None):print(word)passif __name__ == '__main__':say_word('this is test_2 model')

在該目錄下創建一個 test_1.py?文件,文件中包含如下代碼:

from test_2 import say_wordif __name__ == '__main__':word = 'hello world'say_word(word)

接下來使用命令行工具進入到此 app 目錄下,執行如下命令:pyinstaller -F test_1.py

執行上面命令,將看到詳細的生成過程。當生成完成后,將會在此 app 目錄下看到多了一個 dist 目錄,并在該目錄下看到有一個 app.exe 文件,這就是使用 PyInstaller 工具生成的 EXE 程序。

在命令行窗口中進入 dist 目錄下,在該目錄執行 app.exe ,將會看到該程序生成如下輸出結果:hello world

由于該程序沒有圖形用戶界面,因此如果讀者試圖通過雙擊來運行該程序,則只能看到程序窗口一閃就消失了,這樣將無法看到該程序的輸出結果。

在上面命令中使用了 -F 選項,該選項指定生成單獨的 EXE 文件,因此,在 dist 目錄下生成了一個單獨的大約為 6MB 的 app.exe 文件(在 Mac OS X 平臺上生成的文件就叫 app,沒有后綴);與 -F 選項對應的是 -D 選項(默認選項),該選項指定生成一個目錄(包含多個文件)來作為程序。

下面先將 PyInstaller 工具在 app 目錄下生成的 build、dist 目錄刪除,并將 test_1.spec 文件也刪除,

然后使用如下命令來生成 EXE 文件:pyinstaller -D test_1.py

執行上面命令,將看到詳細的生成過程。當生成完成后,將會在 app 目錄下看到多了一個 dist 目錄,并在該目錄下看到有一個 app 子目錄,在該子目錄下包含了大量 .dll 文件和 .pyz 文件,它們都是 app.exe 程序的支撐文件。在命令行窗口中運行該 app.exe 程序,同樣可以看到與前一個 app.exe 程序相同的輸出結果。

?

?

示例 2 : 創建一個 GUI 程序(使用 PyQT5)

?

示例代碼( test_gui.py ):

import sys # from PyQt5 import QtCore from PyQt5.QtWidgets import (QApplication, QMainWindow, QDesktopWidget, QHBoxLayout, QVBoxLayout,QPushButton, QListView, QLabel, QLineEdit, QWidget ) from PyQt5.QtCore import Qtclass TBGUISpider(QMainWindow):def __init__(self):super(TBGUISpider, self).__init__()# self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)self.resize(1200, 800)# self.setFixedSize(self.width(), self.height())self._center_display()self._ini_ui()self.show()def _center_display(self):"""控制窗口顯示在屏幕中心的方法:return:"""# 獲得窗口qr = self.frameGeometry()# 獲得屏幕中心點cp = QDesktopWidget().availableGeometry().center()# 顯示到屏幕中心qr.moveCenter(cp)self.move(qr.topLeft())def _ini_ui(self):###########################################main_widget = QWidget()self.setCentralWidget(main_widget)h_box_1 = QHBoxLayout()# h_box_1.addStretch(2)btn_login = QPushButton('登錄淘寶', self)btn_login.resize(80, 50)# btn_login.move(10, 10)btn_start = QPushButton('開始采集', self)btn_start.setEnabled(False)btn_start.resize(80, 50)# btn_start.move(100, 10)btn_terminate = QPushButton('結束采集', self)btn_terminate.setEnabled(False)btn_terminate.resize(80, 50)# btn_terminate.move(200, 10)h_box_1.addWidget(btn_login, 0, Qt.AlignLeft | Qt.AlignTop)h_box_1.addWidget(btn_start, 0, Qt.AlignLeft | Qt.AlignTop)h_box_1.addWidget(btn_terminate, 0, Qt.AlignLeft | Qt.AlignTop)###########################################h_box_2 = QHBoxLayout()list_view = QListView(self)list_view.resize(1200, 500)h_box_2.addWidget(list_view)###########################################h_box_3 = QHBoxLayout()# lable_search_key = QLabel('關鍵字', self)# line_edit_key = QLineEdit()###########################################v_box = QVBoxLayout()# v_box.addStretch(1)v_box.addLayout(h_box_1)v_box.addLayout(h_box_2)v_box.addLayout(h_box_3)v_box.setStretchFactor(h_box_1, 1)v_box.setStretchFactor(h_box_2, 8)v_box.setStretchFactor(h_box_3, 1)self.centralWidget().setLayout(v_box)passif __name__ == '__main__':app = QApplication(sys.argv)form = TBGUISpider()form.show()app.exec_()

直接運行 python 程序結果:

?

使用?pyinstaller -F test_gui.py

直接運行結果截圖:

會發現有個 命令行 窗口,可以使用 -w?參數 屏蔽 命令行窗口:pyinstaller -w -F test_gui.py

生成的文件比較大,這個簡單的 GUI 就有 30多M

?

?

?

總結

以上是生活随笔為你收集整理的Python PyInstaller 安装 和 使用教程( 打包生成 exe )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩中文字幕在线 | 777久久久精品一区二区三区 | 国产激情av在线 | 99热这里只有精品首页 | 中文字幕亚洲日本 | 伊人婷婷在线 | 特级西西444www大胆免费看 | av免费在线观看网站 | 成人在线三级 | 美女一区二区三区 | 天天视频亚洲 | www.黄色片网站 | 国产精品无码电影在线观看 | 中文字幕色 | 日本特黄特黄刺激大片 | 国产亚洲精品久久久久婷婷瑜伽 | 男人的天堂视频网站 | 国内9l自拍 | av片免费 | 日本伊人久久 | 久久综合加勒比 | 天天干天天拍 | 精品视频一区二区 | 老局长的粗大高h | 国产日韩欧美一二三区 | 四虎音影 | 日本 片 成人 在线 九色麻豆 | 欧美一区三区二区在线观看 | 亚洲视频在线观看一区二区三区 | 欧美黄色片视频 | 福利小视频在线 | 一级特级毛片 | 夜夜嗨av一区二区三区四区 | 超碰超碰超碰超碰 | 亚洲熟女综合色一区二区三区 | 亚洲欧美成人一区二区 | 97视频网址 | 久久精品国产99久久久 | 国产喷水福利在线视频 | 国产91精品一区二区绿帽 | 日本高清久久 | 99在线观看免费 | 欧美操操操 | 黄色xxxxxx| 日韩系列在线 | 极品少妇视频 | 内射一区二区 | 午夜私人福利 | 日韩中文娱乐网 | 桃色激情网 | 18精品爽国产白嫩精品 | 欧洲成人综合网 | 一区三区视频在线观看 | 国产黄色一区二区 | 一本大道av伊人久久综合 | 日本后进式猛烈xx00动态图 | 亚洲视频色 | 在线成人日韩 | 潘金莲一级淫片a.aaaaa播放 | 日韩a级一片 | 这里只有精品在线观看 | 99re国产 | 欧美日韩免费一区 | 靠逼动漫| 亚洲精品视频久久 | 亚洲天堂男人 | 羞羞网站在线观看 | 露脸啪啪清纯大学生美女 | 日本欧美一级 | 日屁视频 | 久久伊人操 | 99国产精品免费视频 | 97在线免费 | 国产精品人人妻人人爽人人牛 | 精品无码久久久久成人漫画 | 中文字幕日韩精品在线观看 | 中文字幕五码 | 人妻少妇一区二区三区 | free性满足hd国产精品久 | 一级黄色大片免费观看 | 山村大伦淫第1部分阅读小说 | 亚洲人人夜夜澡人人爽 | 成年人的天堂 | 91精品久久久久久 | 亚洲一区二区在线观看视频 | 久久久久国产一区二区三区潘金莲 | 久久久亚洲国产精品 | 婷婷天堂 | 国产美女免费网站 | 亚洲一区二区黄 | 美日韩成人av | 国产精品123区 | 超碰在线观看av | 亚洲男女视频 | 天堂网中文在线观看 | 久久久久人妻一区二区三区 | 内射合集对白在线 | 日韩h在线观看 | 一区二区三区在线免费观看 |