ModuleNotFoundError:Python 中没有名为“mysql”的模块
ModuleNotFoundError: No module named ‘mysql’ in Python
Python“ModuleNotFoundError: No module named ‘mysql’”出现在我们导入模块前忘记安装mysql-connector-python
或者安装在不正确的环境中。要解决此错误,请通过运行pip install mysql-connector-python
命令安装模块。
在项目的根目录中打开终端并安装
mysql-connector-python
模块。
# 👇️ in a virtual environment or using Python 2 pip install mysql-connector-python # 👇️ for python 3 (could also be pip3.10 depending on your version) pip3 install mysql-connector-python # 👇️ if you get permissions error sudo pip3 install mysql-connector-python pip install mysql-connector-python --user # 👇️ if you don't have pip in your PATH environment variable python -m pip install mysql-connector-python # 👇️ for python 3 (could also be pip3.10 depending on your version) python3 -m pip install mysql-connector-python # 👇️ using py alias (Windows) py -m pip install mysql-connector-python # 👇️ for Anaconda conda install -c anaconda mysql-connector-python # 👇️ for Jupyter Notebook !pip install mysql-connector-python
安装
mysql-connector-python
包后,尝试像这样导入它:
import mysql.connector # Connect to server cnx = mysql.connector.connect( host="127.0.0.1", port=3306, user="alice", password="dogsandcats123") # Get a cursor cur = cnx.cursor() # Execute a query cur.execute("SELECT CURDATE()") # Fetch one result row = cur.fetchone() print("Current date is: {0}".format(row[0])) # Close connection cnx.close()
出现 Python 错误“ModuleNotFoundError: No module named ‘mysql’”的原因有多种:
- 没有
mysql-connector-python
通过运行安装包
pip install mysql-connector-python
。 - 在与您正在使用的版本不同的 Python 版本中安装包。
- 全局安装包,而不是在您的虚拟环境中。
- 您的 IDE 运行的 Python 版本不正确。
- 命名您的模块
mysql.py
,这将影响官方模块。 - 声明一个名为
mysql
which 的变量将隐藏导入的变量。
如果错误仍然存在,请获取您的 Python 版本并确保您使用正确的 Python 版本安装包。
python --version
例如,我的 Python 版本是3.10.4
,所以我会安装 mysql-connector-python 包pip3.10 install mysql-connector-python
。
pip3.10 install mysql-connector-python # 👇️ if you get permissions error use pip3 (NOT pip3.X) sudo pip3 install mysql-connector-python
请注意,版本号对应于pip
我正在使用的版本。
pip
如果您的计算机上未设置PATH ,请替换pip
为
python3 -m pip
:
# 👇️ make sure to use your version of Python, e.g. 3.10 python3 -m pip install mysql-connector-python
如果“No module named ‘mysql’”错误仍然存在,请尝试重新启动您的 IDE 和开发服务器/脚本。
您可以通过运行命令检查是否mysql-connector-python
安装了软件包。pip show mysql-connector-python
# 👇️ check if you have mysql-connector-python installed pip3 show mysql-connector-python # 👇️ if you don't have pip set up in PATH python3 -m pip show mysql-connector-python
该pip show mysql-connector-python
命令将声明该包未安装或显示有关该包的一堆信息,包括该包的安装位置。
如果未安装该包,请确保您的 IDE 使用的是正确版本的 Python。
mysql-connector-python
使用了不正确的版本安装了包,或者您的 IDE 可能被设置为使用不同的版本。例如,在 VSCode 中,您可以按CTRL + Shift + P
或(在 Mac 上为⌘
+ Shift
+ P
)打开命令面板。
然后在字段中键入“Python 选择解释器”。
然后从下拉菜单中选择正确的 python 版本。
如果您使用的是虚拟环境,请确保您是
mysql-connector-python
在虚拟环境中而不是全局安装。
如果您还没有虚拟环境,可以尝试创建一个。
# 👇️ use correct version of Python when creating VENV python3 -m venv venv # 👇️ activate on Unix or MacOS source venv/bin/activate # 👇️ activate on Windows (cmd.exe) venv\Scripts\activate.bat # 👇️ activate on Windows (PowerShell) venv\Scripts\Activate.ps1 # 👇️ install mysql-connector-python in virtual environment pip install mysql-connector-python
如果该python3 -m venv venv
命令不起作用,请尝试以下 2 个命令:
python -m venv venv
py -m venv venv
您的虚拟环境将使用用于创建它的 Python 版本。
mysql.py
mysql-connector-python
您也不应该声明一个名为mysql-connector-python
as 的变量,这也会影响原始模块。
如果错误未解决,请尝试卸载mysql-connector-python
软件包,然后再安装。
# 👇️ check if you have mysql-connector-python installed pip3 show mysql-connector-python # 👇️ if you don't have pip set up in PATH python3 -m pip show mysql-connector-python # 👇️ uninstall mysql-connector-python pip3 uninstall mysql-connector-python # 👇️ if you don't have pip set up in PATH python3 -m pip uninstall mysql-connector-python # 👇️ install mysql-connector-python pip3 install mysql-connector-python # 👇️ if you don't have pip set up in PATH python3 -m pip install mysql-connector-python
尝试重新启动您的 IDE 和开发服务器/脚本。
您也可以尝试升级 mysql-connector-python 包的版本。
pip3 install mysql-connector-python --upgrade # 👇️ if you don't have pip set up in PATH python3 -m pip install mysql-connector-python --upgrade
这个用于在以下位置使用虚拟环境 (VENV) Windows
:
这个用于在MacOS
和上使用虚拟环境 (VENV) Linux
:
结论
Python“ModuleNotFoundError: No module named ‘mysql’”出现在我们导入模块前忘记安装mysql-connector-python
或者安装在不正确的环境中。要解决此错误,请通过运行pip install mysql-connector-python
命令安装模块。