耗時3小時,把這兩天做好的爬蟲程序,用Python封裝成exe文件

先執行命令如下:

pip install pyinstaller
py -m PyInstaller --log-level=DEBUG --add-data "config.ini;." nmpa_gui.py

很快在dist目錄下就有生成一個nmpa_gui文件夾,運行 nmpa_gui.exe,報錯:

1??初始化爬蟲…
程序執行出錯: ‘database’

解決辦法:需要把config文件(數據庫配置信息)拷貝一份到nmpa_gui文件夾下。繼續報錯:

2??初始化爬蟲…
程序執行出錯: No localization support for language ‘eng’

解決辦法:手動復制 locales 文件夾到項目目錄并打包(簡單直接)
找到你當前環境中安裝的 MySQL Connector 的 locales 文件夾:

默認路徑為:

C:\Users\<你的用戶名>\AppData\Roaming\Python\Python311\site-packages\mysql\connector\locales

依舊報錯:

3??初始化爬蟲…
程序執行出錯: Authentication plugin ‘mysql_native_password’ is not supported

將 _mysql_connector.pyd 復制到項目目錄,文件源路徑在

C:\Users\<你的用戶名>\AppData\Roaming\Python\Python311\site-packages

建議在你的項目根目錄下創建一個文件夾,比如 internal_libs/,然后把 _mysql_connector.pyd 放進去,另外還需新建文件夾dlls,將libmysql.dll 拷貝到下面。

同時修改.spec文件,主要是 binaries,datas,hiddenimports 這三處:

# -*- mode: python ; coding: utf-8 -*-import os
from PyInstaller.utils.hooks import collect_data_files# 收集 mysql connector 的語言資源(eng)
mysql_locales = collect_data_files('mysql.connector', subdir='locales')block_cipher = Nonea = Analysis(['nmpa_gui.py'],pathex=[os.path.abspath(".")],binaries=[('internal_libs\\_mysql_connector.cp311-win_amd64.pyd', '.'),('dlls\\libmysql.dll', '.')  # 添加 libmysql.dll 支持],datas=[('config.ini', '.'),('locales', 'mysql\\connector\\locales')] + mysql_locales,hiddenimports=['mysql.connector.authentication','mysql.connector.locales.eng.client_error','mysql.connector.connection_cext','mysql.connector.plugins.mysql_native_password',  # ?? 關鍵:顯式導入認證插件],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],noarchive=False,optimize=0,
)pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)exe = EXE(pyz,a.scripts,[],exclude_binaries=True,name='nmpa_gui',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=True,  # 保持控制臺輸出便于調試認證問題disable_windowed_traceback=True,argv_emulation=False,
)coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas,strip=False,upx=True,upx_exclude=[],name='nmpa_gui',clean=True,
)

對了,每次重新打包前,建議先清一下緩存,bat命令如下:

@echo off
echo 正在清理 PyInstaller 緩存...
rmdir /s /q build dist __pycache__ __pyinstaller
del /q *.pyc *.pyo *.spec
echo 清理完成。

最終使用如下打包命令:

py -m PyInstaller --noconfirm nmpa_gui.spec

至此,順利打包成功并成功運行!
在這里插入圖片描述
怎么樣,看著是不是瞬間就高大上一些了,Python真是利器!!!后續可以再放出來一些配置,比如一批抓取多少頁后休息,每插入一頁后休息多久,一批完成后休息多久等等!

P.S.因為Cursor又到期了,這點小問題,懶得再去麻煩他, 這次打包中遇到的錯誤,尤其是困擾比較久的問題3??,最終在阿里通義靈碼的技術支持下,得以解決,在此表示感謝,隔壁那位CODEBUDDY和大傻子差不多!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87736.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87736.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux下nginx訪問路徑頁面

第一步&#xff1a;通過Xshell在虛擬機中下載nginx sudo apt-get install nginx 第二步&#xff1a;進入nginx配置頁面 cd /etc/nginx 我這里創建了一個html文件夾 在進入去創建頁面并且重新加載 boahuboahu-VMware-Virtual-Platform:/$ cd /etc/nginx boahuboahu-VMware-Vir…

三維視頻融合怎么弄?三步實現精準投射與自由修剪

分享大綱&#xff1a; 1、場景引入&#xff1a;為什么你的三維場景視頻融合效果不理想&#xff1f; 2、解決方案&#xff1a;捷碼視頻融合三步操作指南 3、捷碼平臺&#xff1a;低代碼構建動態三維視界 在智慧城市中的安防領域&#xff0c;將實時視頻與三維場景融合已是大勢需求…

探索阿里云網絡與CDN產品:解鎖高效網絡體驗

阿里云網絡產品概述 在云計算蓬勃發展的當下&#xff0c;網絡作為連接計算、存儲與用戶的關鍵紐帶&#xff0c;其重要性不言而喻。阿里云作為全球知名的云計算服務提供商&#xff0c;憑借其豐富且強大的網絡產品體系&#xff0c;為企業數字化轉型筑牢了堅實的網絡根基&#xf…

深入理解C語言指針(二):從數組到多級指針的全面解析

作為C語言的核心概念&#xff0c;指針常常讓初學者感到困惑。本文將從數組與指針的關系入手&#xff0c;逐步揭開指針在數組操作、函數傳參以及多級指針中的神秘面紗&#xff0c;幫助你建立系統的指針知識體系。 一、數組名的雙重身份&#xff1a;首地址與整體標識 在C語言中&a…

Windows PPT/word怎么pdf不降低分辨率,插入可編輯

Windows PPT/word怎么pdf不降低分辨率 下載軟件Inkscape&#xff1a;Inkscape - Draw Freely. | Inkscape 然后使用Inkscape將你的PDF轉為svg, 然后用office的PPT打開&#xff0c;將svg復制進PPT/word&#xff0c;然后保存就可以了 插入可編輯的&#xff08;只能通過Mac的才可…

vue3 select 選中值時,即獲得id,也獲得name值并且輸入框正確選中

1.獲取 name和id 直接綁定對象 將 value 綁定為整個對象&#xff0c;通過 change 事件獲取完整數據 value-key 綁定唯一標識 value 綁定為整個對象&#xff0c;通過 change 事件獲取完整數據 <el-select v-model"selectedItem" change"handleChange"…

什么是Seata

Seata的實現原理主要圍繞其核心架構&#xff08;TC/TM/RM&#xff09;和事務模式&#xff08;如AT、TCC等&#xff09;展開&#xff0c;通過協調全局事務與分支事務的協作保證數據一致性。以下是核心實現原理的詳細解析&#xff1a; ?? ??一、核心架構協作機制?? Seata通…

linux ARM64架構用戶空間和內核空間的區分

一、ARM64 架構地址空間的「黃金分割」 ARM64&#xff08;ARMv8-A&#xff09;采用 48 位虛擬地址&#xff08;Linux 默認配置&#xff09;&#xff0c;總空間為 256TB&#xff0c;分為高低兩個 128TB 區域&#xff1a; 1. 地址空間整體布局 虛擬地址空間&#xff08;48位&a…

51單片機重要知識點1

1. 在讀IO口狀態前必須先寫該IO口1. 即讓下拉MOS高阻斷路。如&#xff1a; P221; KEYP22; 復位狀態各IO口1的。另外大多數情況都不會IO口即做輸入又做輸出的。設計思想永遠不要復雜化高難度編程&#xff0c;而要簡單明了。 2.

【解析法與幾何法在阻尼比設計】自控

解析法與幾何法在阻尼比設計中的詳細對比 一、解析法&#xff1a;基于數學方程的定量求解 核心思想&#xff1a;通過特征方程與根軌跡條件建立代數關系&#xff0c;直接求解滿足阻尼比要求的系統參數。 1. 適用場景 二階系統或可簡化為二階系統的高階系統&#xff08;主導極…

搭建pikachu靶場

文章目錄 一、pikachu是什么?二、搭建環境1.下載鏈接三、安裝教程phpstudy安裝配置pikachu 靶場安裝配置總結一、pikachu是什么? Pikachu 靶場是一個專門為網絡安全愛好者和學習者設計的 Web 安全靶場。它旨在幫助用戶學習和實踐常見的 Web安全漏洞和攻擊手法。Pikachu 靶場通…

OpenStack Dashboard在指定可用域(Availability Zone)、指定節點啟動實例

通過OpenStack Dashboard在指定可用域&#xff08;Availability Zone&#xff09;中創建實例的完整配置&#xff0c;涵蓋可用域創建、節點管理、關系與限制的詳細步驟&#xff1a; 一、可用域&#xff08;Availability Zone&#xff09;的概念與關系 0.指定域、指定節點、指定…

6.時間序列預測的模型部署

6.1實驗設置和python版的Azure機器學習SDK介紹 6.1.1 WorkSpace 6.1.2 Experiment 6.1.3 Run 6.1.4 Model 6.1.5 ComputeTarget、RunConfiguration和ScriptRunConfig 6.1.6 Image 和 Webservice 6.2 機器學習模型部署 6.3 時間序列預測的解決方案體系結構部署示例 6.3.1 訓練…

加密貨幣:比特幣

比特幣&#xff08;Bitcoin&#xff0c;簡稱BTC是一種去中心化的數字貨幣&#xff0c;由中本聰&#xff08;Satoshi Nakamoto&#xff09;在2008年提出&#xff0c;并于2009年正式推出。它是首個基于區塊鏈技術的加密貨幣&#xff0c;旨在實現點對點的價值傳輸&#xff0c;無需…

【Dv3Admin】應用WSGI啟動配置文件解析

在 Django 項目部署中&#xff0c;WSGI 是連接 Web 服務器與應用的標準接口。它負責接收請求、交由 Django 處理并返回響應&#xff0c;是系統上線運行的基礎組件。理解其作用&#xff0c;有助于掌握項目的啟動流程與部署邏輯。 本文解析 application/wsgi.py 模塊的結構與功能…

aws各類服務器編號

在 AWS 中&#xff0c;服務器實例編號通常由一個字母和數字組合而成&#xff0c;每個字母代表不同的實例系列&#xff0c;數字則表示該系列的不同版本或規格。以下是對常見實例系列編號的解釋&#xff1a; T 系列&#xff08;突發性能型&#xff09; 特點&#xff1a;T 系列實例…

Netty實戰:從核心組件到多協議實現(超詳細注釋,udp,tcp,websocket,http完整demo)

目錄 前言 一、為什么選擇Netty&#xff1f; 二、Netty核心組件解析 三、多協議實現 1. TCP協議實現&#xff08;Echo服務&#xff09; 2. UDP協議實現&#xff08;廣播服務&#xff09; 3. WebSocket協議實現&#xff08;實時通信&#xff09; 4. HTTP協議實現&#x…

MCP出現的意義是什么?讓 AI 智能體更模塊化

AI 智能體現在能做的事情真的很厲害&#xff0c;可以思考、規劃&#xff0c;還能執行各種復雜任務&#xff0c;而且代碼量并不大。這讓開發者看到了一個機會&#xff1a;把那些龐大復雜的代碼庫和 API 拆解成更實用的模塊。 不過要讓這些智能變成現實世界里真正能用的東西&…

【深度剖析】領信卓越:福耀玻璃的數字化轉型(下篇3:階段成效3-打造從功能部件到數據終端躍遷的智能化產品)

在數字經濟持續發展的背景下,企業數字化轉型方案成為實現轉型的關鍵。不同行業內的企業因轉型動機和路徑的差異,其轉型成效也各異。福耀玻璃自1983年創立以來,從一家瀕臨破產的鄉鎮水表玻璃廠蛻變為全球汽車玻璃行業的領軍企業,其發展歷程堪稱中國制造業的典范。創始人曹德…

告別停機煩惱!AWS EC2實例升級的“零中斷”實戰方案

引言&#xff1a; “服務器要升級了&#xff0c;今晚得停機維護...” —— 這句話曾是多少運維工程師的“噩夢”&#xff0c;也是業務部門最不愿聽到的通知。在追求極致用戶體驗和7x24小時業務連續性的今天&#xff0c;停機窗口已成為難以承受之重。尤其是在云時代&#xff0c…