板凳-------Mysql cookbook學習 (六)

2025年Pytorch-gpu版本安裝(各種情況適用自己的安裝需求,親測絕對有效,示例安裝torch2.6.0,過程詳細面向小白)_torch gpu版本-CSDN博客
https://blog.csdn.net/OpenSeek/article/details/145795127
2.2 查錯

import sys
import MySQLdb
try:conn = MySQLdb.connect (db = "cookbook",host = "localhost",user = "cbuser", passwd = "cbpass")print ("Connected")
except MySQLdb.Error as e:print ("Cannot connect to server")print ("Error code:", e.args[0])print ("Error message:", e.args[1])sys.exit(1)conn.close()
print ("Disconnected")
import sys
import MySQLdbtry:conn = MySQLdb.connect(db="cookbook",host="localhost",user="cbuser",passwd="cbpass")print("Connected")
except MySQLdb.Error as e:print(f"Connection failed: Error {e.args[0]} ({e.args[1]})")sys.exit(1)
finally:if 'conn' in locals():conn.close()
print("Disconnected")

以下是你的 Python 腳本的逐行分析及常見問題解決方案:


代碼功能
嘗試連接 MySQL 數據庫 cookbook,若成功則關閉連接,若失敗則輸出錯誤信息。


常見錯誤及解決方案

1. MySQL 服務未啟動
?	現象:拋出 Can't connect to MySQL server on 'localhost' 錯誤。
?	解決:
o	Windows:打開服務管理器(services.msc),啟動 MySQL 服務。
o	Linux/macOS:運行 sudo systemctl start mysql。
2. 數據庫憑證錯誤
?	現象:拋出 Access denied for user 'cbuser'@'localhost' 錯誤。
?	解決:
1.	確認數據庫名、用戶名、密碼是否正確。
2.	使用命令行測試連接:
bash
復制
mysql -u cbuser -p cbpass cookbook
3.	如果密碼錯誤,重置密碼:
sql
復制
ALTER USER 'cbuser'@'localhost' IDENTIFIED BY 'new_password';
3. 用戶權限不足
?	現象:拋出 Host 'localhost' is not allowed to connect 錯誤。
?	解決:授予用戶權限:
sql
復制
GRANT ALL PRIVILEGES ON cookbook.* TO 'cbuser'@'localhost' IDENTIFIED BY 'cbpass';
FLUSH PRIVILEGES;
4. MySQLdb 庫未正確安裝
?	現象:拋出 ModuleNotFoundError: No module named 'MySQLdb'。
?	解決:
o	Python 3:安裝 mysqlclient:
bash
復制
pip install mysqlclient
o	Windows:需安裝 MySQL Connector/C 并確保環境變量包含 libmysql.dll。
5. 連接參數錯誤
?	現象:拋出 Unknown MySQL server host 或 Can't connect to local MySQL server。
?	解決:
o	檢查 host 是否為 localhost 或 127.0.0.1。
o	指定端口(默認 3306):
python
復制
conn = MySQLdb.connect(db="cookbook",host="localhost",port=3306,user="cbuser",passwd="cbpass"
)

調試建議

1.	打印完整錯誤信息:修改異常捕獲代碼,輸出詳細錯誤:
python
復制
except MySQLdb.Error as e:print(f"Error {e.args[0]}: {e.args[1]}")
2.	手動測試連接:用命令行工具驗證數據庫是否可達:
bash
復制
mysql -h localhost -u cbuser -p cbpass cookbook
3.	檢查防火墻:確保本地防火墻未阻止 MySQL 端口(默認 3306)。
________________________________________
修正后的代碼
python
復制
import sys
import MySQLdbtry:conn = MySQLdb.connect(db="cookbook",host="localhost",user="cbuser",passwd="cbpass")print("Connected")
except MySQLdb.Error as e:print(f"Connection failed: Error {e.args[0]} ({e.args[1]})")sys.exit(1)
finally:if 'conn' in locals():conn.close()print("Disconnected")
________________________________________

關鍵檢查點

問題類型	檢查方法
MySQL 服務狀態	sudo systemctl status mysql
用戶權限	SHOW GRANTS FOR 'cbuser'@'localhost';
密碼正確性	mysql -u cbuser -p
Python 庫安裝	pip show mysqlclient
從你的 pip3 show torch 輸出可以看出,當前安裝的 PyTorch 版本為 1.13.1+cpu,而 Hugging Face Transformers 庫要求 PyTorch ≥ 2.6。以下是針對 Windows 系統和 Conda 環境的完整解決方案:
1. 升級 PyTorch 到 2.6+
步驟 1:卸載舊版本 PyTorch
在終端中運行以下命令(以管理員身份運行):pip uninstall torch torchvision torchaudio -y
步驟 2:通過 Conda 安裝 PyTorch 2.6+(CPU 版本)
由于你使用的是 Conda 環境,建議通過 Conda 安裝以解決依賴沖突:conda activate myenv  # 激活你的 Conda 環境(如 base)
conda install pytorch=2.6 torchvision torchaudio cpuonly -c pytorch -c conda-forge
(無法安裝!!!!)
1. 更換國內鏡像源加速
步驟 1:配置清華鏡像源
在終端中運行以下命令:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
步驟 2:清除緩存
conda clean -i
2. 使用 Mamba 加速依賴解析
Mamba 是 Conda 的替代工具,依賴解析速度更快:步驟 1:安裝 Mamba
conda install -n base -c conda-forge mamba
步驟 2:通過 Mamba 安裝 PyTorch
mamba install pytorch=2.6 torchvision torchaudio cpuonly -c pytorch -c conda-forge
3. 創建干凈的 Conda 環境
如果現有環境存在依賴沖突,新建一個環境:conda create -n pytorch26 python=3.10
conda activate pytorch26
conda install pytorch=2.6 torchvision torchaudio cpuonly -c pytorch -c conda-forge
4. 分步安裝依賴(備用方案)
如果自動安裝失敗,手動指定依賴版本:conda install numpy=1.24.3 typing-extensions=4.7.1
conda install pytorch=2.6 torchvision=0.17.0 torchaudio=2.0.0 cpuonly -c pytorch
5. 驗證安裝
安裝完成后運行以下命令:python -c "import torch; print(torch.__version__)"  # 應輸出 2.6.0+C:\Users\lenovo>pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
Successfully installed torch-1.13.1+cpu torchaudio-0.13.1+cpu torchvision-0.14.1+cpu
2.3 編寫庫文件如何將公共操作代碼放入庫文件中。假設不想將庫文件被語言處理器默認搜索的目錄是放在windows 下使用c:\lib\mcb
%run  c:/lib/mcb/connect.pyConnected
Disconnected

封裝(或模塊化)并不是一個“解決文案”而是一項編程技術。不用再在每個程序里重復編寫相同的代碼。僅調用庫中的一個行程序,程序都可以在recipes發行包的lib 目錄下找到。
通過調用庫里面的程序編寫連接到數據庫的程序,只需要做出變化的位置局部化:僅需要修改受影響的庫程序。
代碼封裝提升安全性。
庫文件自身并不能獨立使用,都是通過一個簡短的“test harness”程序來說明的。拷貝一份文件在connect 和disconnect 調用之間加入你自己的代碼。

Cell 1: Run the script using %run

%run c:/lib/mcb/Cookbook.py
#! c:/lib/mcb/Cookbook.py

Cell 2: Use the loaded function

import sys
import MySQLdbtry:conn = connect()print("Connected to database")
except MySQLdb.Error as e:print(f"Connection failed: Error {e.args[0]} ({e.args[1]})")sys.exit(1)
finally:if 'conn' in locals():conn.close()print("Disconnected")

Connected to database
Disconnected

2.4 發起語句并檢索結果

mysql> select * from profile;
+----+---------+------------+-------+-----------------------+------+
| id | name    | birth      | color | foods                 | cats |
+----+---------+------------+-------+-----------------------+------+
|  1 | Fred    | 1970-04-13 | black | lutefisk,fadge,pizza  |    0 |
|  2 | Mort    | 1969-09-30 | white | burrito,curry,eggroll |    3 |
|  3 | Brit    | 1957-12-01 | red   | burrito,curry,pizza   |    1 |
|  4 | Carl    | 1973-11-02 | red   | eggroll,pizza         |    4 |
|  5 | Sean    | 1963-07-04 | blue  | burrito,curry         |    5 |
|  6 | Alan    | 1965-02-14 | red   | curry,fadge           |    1 |
|  7 | Mara    | 1968-09-17 | green | lutefisk,fadge        |    1 |
|  8 | Shepard | 1975-09-02 | black | curry,pizza           |    2 |
|  9 | Dick    | 1952-08-20 | green | lutefisk,fadge        |    0 |
| 10 | Tony    | 1960-05-01 | white | burrito,pizza         |    0 |
| 11 | Alison  | 1973-01-12 | blue  | eggroll               |    4 |
| 12 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 13 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 14 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 15 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 16 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 17 | Amabel  | NULL       | NULL  | NULL                  | NULL |
+----+---------+------------+-------+-----------------------+------+
17 rows in set (0.01 sec)
mysql> update profile set cats = cats + 1 where name = 'Fred'-> ;

Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from profile;
+----+---------+------------+-------+-----------------------+------+
| id | name    | birth      | color | foods                 | cats |
+----+---------+------------+-------+-----------------------+------+
|  1 | Fred    | 1970-04-13 | black | lutefisk,fadge,pizza  |    1 |
|  2 | Mort    | 1969-09-30 | white | burrito,curry,eggroll |    3 |
|  3 | Brit    | 1957-12-01 | red   | burrito,curry,pizza   |    1 |
|  4 | Carl    | 1973-11-02 | red   | eggroll,pizza         |    4 |
|  5 | Sean    | 1963-07-04 | blue  | burrito,curry         |    5 |
|  6 | Alan    | 1965-02-14 | red   | curry,fadge           |    1 |
|  7 | Mara    | 1968-09-17 | green | lutefisk,fadge        |    1 |
|  8 | Shepard | 1975-09-02 | black | curry,pizza           |    2 |
|  9 | Dick    | 1952-08-20 | green | lutefisk,fadge        |    0 |
| 10 | Tony    | 1960-05-01 | white | burrito,pizza         |    0 |
| 11 | Alison  | 1973-01-12 | blue  | eggroll               |    4 |
| 12 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 13 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 14 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 15 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 16 | De'Mont | 1973-01-12 | NULL  | eggroll               |    4 |
| 17 | Amabel  | NULL       | NULL  | NULL                  | NULL |
+----+---------+------------+-------+-----------------------+------+
17 rows in set (0.00 sec)

SQL 語句分兩大類:
不返回結果集的語句。包括 insert, delect and update.這類語句通常以某種方式改變了數據庫。
返回結果集的語句。 例如 select, show explain and describe.
Python 處理一個語句, 用數據庫連接對象獲得一個游標對象,使用游標的execute()方法向服務器發送語句。

cursor = conn.cursor()
cursor.execute("update profile set cats = cats + 1 where name = 'Fred'")
print("Number of rows updated: %d " % cursor.rowcount)

Number of rows updated: 1

cursor = conn.cursor()
cursor.execute("SELECT id, name, cats FROM profile")  # 修正 SQL 語句(移除多余的單引號)while True:  # 更規范的寫法row = cursor.fetchone()if row is None:  # 刪除分號,使用 is None 更規范breakprint("id: %s, name: %s, cats: %s" % (row[0], row[1], row[2]))
print("Number of rows returned: %d " % cursor.rowcount)
cursor.close()
id: 1, name: Fred, cats: 1
id: 2, name: Mort, cats: 3
id: 3, name: Brit, cats: 1
id: 4, name: Carl, cats: 4
id: 5, name: Sean, cats: 5
id: 6, name: Alan, cats: 1
id: 7, name: Mara, cats: 1
id: 8, name: Shepard, cats: 2
id: 9, name: Dick, cats: 0
id: 10, name: Tony, cats: 0
id: 11, name: Alison, cats: 4
id: 12, name: De'Mont, cats: 4
id: 13, name: De'Mont, cats: 4
id: 14, name: De'Mont, cats: 4
id: 15, name: De'Mont, cats: 4
id: 16, name: De'Mont, cats: 4
id: 17, name: Amabel, cats: None
Number of rows returned: 17

從錯誤信息來看,你的代碼中存在 語法錯誤:在 if row == None 后誤加了分號 ;。以下是修正后的代碼:


關鍵修正點

1.	刪除多余的分號:
原代碼中 if row == None; 的分號 ; 導致語法錯誤,Python 中 if 條件后不需要分號。
2.	優化 SQL 語句:
修正 SQL 中的冗余單引號(profile' → profile),避免語法錯誤。
3.	更規范的循環寫法:
將 while 1 改為 while True,提高代碼可讀性。
4.	使用 is None 替代 == None:
在 Python 中,判斷 None 更推薦使用 is None。
________________________________________
完整代碼解釋
代碼行	作用
cursor.execute(...)	執行 SQL 查詢,獲取 profile 表中的 id, name, cats 字段
while True	無限循環,直到 fetchone() 返回 None(無更多數據)
row = cursor.fetchone()	逐行獲取查詢結果
if row is None: break	如果沒有更多數據,退出循環
print(...)	格式化輸出查詢結果
cursor.rowcount	獲取受影響的行數(此處為查詢結果的行數)

另一個行獲取 方法fetchall()以一個行序列的方式返回整個結果集。

cursor = conn.cursor()
cursor.execute("SELECT id, name, cats FROM profile")  # 修正 SQL 語句(移除多余的單引號)
rows = cursor.fetchall()
for row in rows:print("id: %s, name: %s, cats: %s" % (row[0], row[1], row[2]))
print("Number of rows returned: %d " % cursor.rowcount)
cursor.close()

結果同上

通過訪問列名來訪問行值,創建游標對象時指定DictCursor游標類型,
這使得行作為命名元素的Python字典對象返回

確保正確導入 DictCursor

from MySQLdb.cursors import DictCursor

創建 DictCursor

cursor = conn.cursor(DictCursor)

cursor.execute(“SELECT id, name, cats FROM profile”)

修復變量名:循環變量應為 row,而非 rows

for row in cursor.fetchall():# 使用字典鍵訪問字段print("id: %s, name: %s, cats: %s" % (row["id"], row["name"], row["cats"]))print("Number of rows returned: %d " % cursor.rowcount)
cursor.close()

結果同上

2.5 處理語句中的特殊字符和null值 133/951 Saturday, May 24, 2025

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

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

相關文章

Spring boot和SSM項目對比

目錄對比 springboot目錄 project├─src│ ├─main│ │ ├─java│ │ │ ├─com.example.demo│ │ │ │ ├─config // 存放SpringBoot的配置類│ │ │ │ ├─controller // 存放控制器類│ │ │ │ ├─entity // 存…

《關于潯川社團退出DevPress社區及內容撤回的聲明》

《關于潯川社團退出DevPress社區及內容撤回的聲明》 尊敬的DevPress社區及讀者: 經潯川社團內部決議,我社決定自**2025年5月26日**起正式退出DevPress社區,并撤回所有由我社成員在該平臺發布的原創文章。相關事項聲明如下: …

Python性能優化利器:__slots__的深度解析與避坑指南

核心場景:當需要創建數百萬個屬性固定的對象時,默認的__dict__字典存儲會造成巨大內存浪費。此時__slots__能通過元組結構取代字典,顯著提升內存效率(實測節省58%內存)! 底層原理:為何能節省內…

Go 語言中的 Struct Tag 的用法詳解

在 Go 語言中,結構體字段標簽(Struct Tag) 是一種用于給字段添加元信息(metadata)的機制,常用于序列化(如 JSON、XML)、ORM 映射、驗證等場景。你在開發 Web 應用或處理數據交互時&a…

微軟正式發布 SQL Server 2025 公開預覽版,深度集成AI功能

微軟在今年的 Build 2025 大會上正式發布了 SQL Server 2025 公開預覽版,標志著這一經典數據庫產品在 AI 集成、安全性、性能及開發者工具方面的全面升級。 AI 深度集成與創新 原生向量搜索:SQL Server 2025 首次將 AI 功能直接嵌入數據庫引擎&#xff…

React從基礎入門到高級實戰:React 基礎入門 - React 的工作原理:虛擬 DOM 與 Diff 算法

React 的工作原理:虛擬 DOM 與 Diff 算法 引言 React 是現代前端開發的明星框架,它的出現徹底改變了我們構建用戶界面的方式。無論是動態的 Web 應用還是復雜的單頁應用(SPA),React 都能以高效的渲染機制和簡潔的組件…

解釋一下NGINX的反向代理和正向代理的區別?

大家好,我是鋒哥。今天分享關于【解釋一下NGINX的反向代理和正向代理的區別?】面試題。希望對大家有幫助; 解釋一下NGINX的反向代理和正向代理的區別? NGINX的反向代理和正向代理的區別主要體現在它們的功能和使用場景上。下面我會詳細解釋它們的定義…

Python學習——執行python時,鍵盤按下ctrl+c,退出程序

在 Python 中,當用戶按下 CtrlC 時,程序默認會觸發 KeyboardInterrupt 異常并終止。 1. 捕獲 KeyboardInterrupt 異常(推薦) 使用 try-except 塊直接捕獲 KeyboardInterrupt 異常,適用于簡單場景。 示例代碼&#xff…

C++ 反向迭代器(Reverse Iterator)實現詳解

目錄 1. 反向迭代器概述 2. 代碼實現分析 3. 關鍵點解析 3.1 模板參數設計 3.2 核心操作實現 4. 使用示例 1. 反向迭代器概述 反向迭代器是STL中一種重要的適配器,它允許我們以相反的順序遍歷容器。本文將詳細講解如何實現一個自定義的反向迭代器模板類。 2.…

動態DNS管理:【etcd+CoreDNS】 vs【BIND9】便捷性對比

對比 BIND9 集群和 etcdCoreDNS 集群在便捷性方面,通常情況下,對于需要動態、頻繁變更 DNS 記錄以及追求云原生和自動化集成的場景,etcdCoreDNS 方案更加便捷。 然而,“便捷性”也取決于具體的應用場景、團隊的技術棧和運維習慣。…

基于大模型的短暫性腦缺血發作預測與干預全流程系統技術方案大綱

目錄 一、系統概述二、系統架構(一)數據采集層(二)大模型核心層(三)應用服務層(四)數據存儲與管理層三、全流程技術方案(一)術前階段(二)術中階段(三)術后階段(四)并發癥風險預測(五)手術方案制定(六)麻醉方案制定(七)術后護理(八)統計分析(九)技術驗…

MSP430通用電機控制代碼(Motor)設計與實現

一、代碼結構概覽 // Motor.h // Motor.h #ifndef __MOTOR_H_ #define __MOTOR_H_#include "A_include.h"void Motor_Init(void); // 初始化函數 void PWM_SET(int duty0, int duty1); // PWM設置函數#endif// Motor.c // Motor.c #include "Motor.h"…

25年軟考架構師真題(回憶更新中)

論文題: 系統負載均衡設計方法事件驅動架構多模型數據庫應用軟件測試架構案例分析: 必選題:1.1填寫質量屬性的質量屬性名 1.2解釋器風格架構的組成圖填空,以及解釋為什么該模型適用解釋器風格 選做題1redis2.1全量復制的流程圖 <

優化用戶體驗:攔截瀏覽器前進后退、刷新、關閉、路由跳轉等用戶行為并彈窗提示

&#x1f9d1;?&#x1f4bb; 寫在開頭 點贊 收藏 學會&#x1f923;&#x1f923;&#x1f923; 需求 首先列舉一下需要攔截的行為&#xff0c;接下來我們逐個實現。 瀏覽器前進后退標簽頁刷新和關閉路由跳轉 1、攔截瀏覽器前進后退 這里的實現是核心&#xff0c;涉及到大…

Docker:容器化技術

引言 傳統部署環境逐漸不適應現在的企業開發&#xff0c;為了追求更加輕量&#xff0c;更加容易管理項目&#xff0c;引入了docker容器化技術去實現更加高效的部署環境。 一.docker風光下的內核功能和常用命令 1.docker容器和虛擬機的區別 我們在底層和應用層之間引入了一層do…

ping命令常用參數以及traceout命令

在網絡故障排查和性能分析中&#xff0c;ping和 traceroute&#xff08;Windows中通常稱為 tracert&#xff09;是兩個極為重要的工具。它們幫助診斷網絡連接問題&#xff0c;了解數據在網絡中的傳輸路徑。下面將詳細介紹這兩個命令的常用參數及其應用。 ping命令 ping命令用…

SpringBoot開發——Spring Boot異常處理全攻略:五大方案實戰對比

文章目錄 一、血淚教訓:異常處理的代價二、五大異常處理方案詳解2.1 全局異常處理(推薦方案)2.2 控制器級處理2.3 HTTP狀態碼注解2.4 ResponseEntity精細控制2.5 自定義異常體系(企業級方案)三、五大方案對比決策表四、四大避坑指南4.1 異常吞噬陷阱4.2 循環依賴問題4.3 異…

CodeBuddy 實現圖片轉素描手繪工具

本文所使用的 CodeBuddy 免費下載鏈接&#xff1a;騰訊云代碼助手 CodeBuddy - AI 時代的智能編程伙伴 前言 最近在社交媒體上&#xff0c;各種素描風格的圖片火得一塌糊涂&#xff0c;身邊不少朋友都在分享自己的 “素描照”&#xff0c;看著那些黑白線條勾勒出的獨特韻味&a…

2025.05.21華為暑期實習機考真題解析第二題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍OJ 02. 災區物資調度路徑規劃 問題描述 在一次嚴重的自然災害后,LYA負責協調救援物資的配送工作。救援區域包含多個受災鄉鎮和一個物資集結點,各個地點之間的道路狀況各異,有些甚至…

Gartner《Optimize GenAI Strategy for 4 Key ConsumerMindsets》學習心得

一、引言 在當今數字化營銷浪潮中,生成式人工智能(GenAI)正以前所未有的速度重塑著市場格局。GenAI 既是一場充滿機遇的變革,也是一場潛在風險的挑戰。一方面,絕大多數 B2C 營銷領導者對 GenAI 賦能營銷抱有極高期待,他們看到了 GenAI 在提升時間與成本效率方面的巨大潛…