在使用python3連接MySQL的時候出現了 ‘ModuleNotFoundError: No module named ‘MySQLdb’’錯誤。
爲了加深記憶,將問題解決過程總結如下:
1、環境:OS X操作系統,Python 3.7.3。
2、在python文件中引入數據庫模塊,運行報錯
#! /usr/bin/python
# coding: utf-8
# 連接數據庫 mysql -u root -p
import MySQLdb
print('sql')
報錯內容如下:
2、根據提示安裝MySQL-python
pip install MySQL-python
運行安裝命令,繼續報錯,具體報錯內容如下,
ERROR: Command errored out with exit status 1:
command: /Users/apple/anaconda3/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/82/g066n2jx5s98h8l5s1r2f4pm0000gn/T/pip-install-s7hkgu37/mysql-python/setup.py'"'"'; __file__='"'"'/private/var/folders/82/g066n2jx5s98h8l5s1r2f4pm0000gn/T/pip-install-s7hkgu37/mysql-python/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/82/g066n2jx5s98h8l5s1r2f4pm0000gn/T/pip-pip-egg-info-5g06sc7q
cwd: /private/var/folders/82/g066n2jx5s98h8l5s1r2f4pm0000gn/T/pip-install-s7hkgu37/mysql-python/
Complete output (7 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/82/g066n2jx5s98h8l5s1r2f4pm0000gn/T/pip-install-s7hkgu37/mysql-python/setup.py", line 13, in <module>
from setup_posix import get_config
File "/private/var/folders/82/g066n2jx5s98h8l5s1r2f4pm0000gn/T/pip-install-s7hkgu37/mysql-python/setup_posix.py", line 2, in <module>
from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
3、依據報錯提示信息安裝ConfigParser
pip install ConfigParser
安裝成功之後,運行代碼,依然提示上面的報錯信息
4、查找原因
這是因爲 MySQL-python 不支持 Python3
python3使用mysqlclient模塊替代了python2的 mysqldb模塊
【解決方法1】
安裝mysqlclient模塊
pip install mysqlclient
然後就可以正常運行了
【解決方法2】
安裝pymysql模塊
pip install pymysql
5、如果還有報錯,可能是原因是,需要安裝mysql,且升級pip版本