没有名为 MySQLdb 的模块
- 2025-01-16 08:38:00
- admin 原创
- 103
问题描述:
我正在使用 Python 版本 2.5.4,并安装了 MySQL 版本 5.0 和 Django。Django 与 Python 配合使用效果很好,但与 MySQL 配合使用效果不好。我在 Windows Vista 中使用它。
解决方案 1:
您需要使用以下命令之一。具体使用哪个命令取决于您拥有和使用的操作系统和软件。
easy_install mysql-python (混合操作系统)
pip 安装 mysql-python (混合操作系统/python 2)
pip 安装 mysqlclient (混合操作系统/python 3)
apt-get 安装 python-mysqldb(Linux Ubuntu,...)
cd /usr/ports/databases/py-MySQLdb && 进行安装清理(FreeBSD)
yum 安装 MySQL-python(Linux Fedora、CentOS...)
对于 Windows,请参阅此答案:安装 mysql-python (Windows)
解决方案 2:
...请记住,python3.x 没有 MySQLdb
(我知道问题是关于 python2.x 的,但是谷歌对这篇文章的评价很高)
编辑:正如评论中所述,有一个 MySQLdb 的分支添加了 Python 3 支持:github.com/PyMySQL/mysqlclient-python
解决方案 3:
如果你的python版本是3.5
,请执行pip install mysqlclient
,其他操作对我来说不起作用
解决方案 4:
mysqldb
是 Python 的一个模块,它不是预装的,也不是随 Django 一起提供的。你可以mysqldb
在这里下载。
解决方案 5:
对于任何访问此页面并尝试寻找解决方案的人来说sqlalchemy
,您需要做的就是:
pip install PyMySQL
并调整您的连接字符串以使用 PyMySQL,从mysql://
到mysql+pymysql://
。
解决方案 6:
注意:这没有针对 Python 3.x 进行测试
在CMD中
pip install wheel
pip install pymysql
在 settings.py 中
import pymysql
pymysql.install_as_MySQLdb()
它对我有用
解决方案 7:
我在 ubuntu (linux) 上,对我有用的是
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
最后
pip install mysqlclient
解决方案 8:
乌本图:
sudo apt-get install python-mysqldb
解决方案 9:
对于 Windows:
pip install mysqlclient pymysql
然后:
import pymysql
pymysql.install_as_MySQLdb()
适用于 Python 3 Ubuntu
sudo apt-get install -y python3-mysqldb
解决方案 10:
pip install PyMySQL
然后将这两行添加到你的 Project/Project / init.py
import pymysql
pymysql.install_as_MySQLdb()
适用于 WIN 和 Python 3.3+
解决方案 11:
如果 pip install mysqlclient 出现错误并且您使用 Ubuntu,请尝试:
sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient
解决方案 12:
尝试一下。
pip install MySQL-python
解决方案 13:
对于 Python 3.6+
sudo apt-get install libmysqlclient-dev
pip3 install mysqlclient
奏效
解决方案 14:
Python 3.8
sudo apt-get install libmysqlclient-dev
sudo apt-get install -y python3-mysqldb
pip3 install pymysql
设置.py
import pymysql
pymysql.install_as_MySQLdb()
解决方案 15:
我个人建议使用pymysql
而不是使用正版 MySQL 连接器,它为您提供了一个独立于平台的接口,并且可以通过进行安装pip
。
您可以像这样编辑 SQLAlchemy URL 模式:mysql+pymysql://username:passwd@host/database
解决方案 16:
我在windows下也遇到了同样的情况,并搜索了解决办法。
看到这个帖子安装mysql-python(Windows)。
它指出安装这样的 pip 环境很困难,需要许多其他依赖项。
但我最终知道,如果我们使用mysqlclient
低于的版本1.3.4
,它就不再需要这些要求,所以尝试:
pip install mysqlclient==1.3.4
解决方案 17:
pip install --user mysqlclient
以上对我来说非常有效。实际上,我从 sqlalchemy 中获取了错误。环境信息:
Python:3.6,Ubuntu:16.04,conda 4.6.8
解决方案 18:
如果您在 Vista 上运行,您可能需要查看Bitnami Django 堆栈。它是 Apache、Python、MySQL 等的一体化堆栈,与Bitrock跨平台安装程序一起打包,使其非常容易上手。它可在 Windows、Mac 和 Linux 上运行。哦,而且完全免费 :)
解决方案 19:
使用 转到您的项目目录
cd
。source/bin/activate (如果之前没有激活,请激活您的环境)。
运行命令
easy_install MySQL-python
解决方案 20:
感谢 derevo,但我认为还有另一种好方法可以做到这一点:
下载并安装ActivePython
打开命令提示符
类型
pypm install mysql-python
阅读关于这个包的具体说明。
我认为pypm
它比更强大、更可靠easy_install
。
解决方案 21:
在 OSX 上这些命令对我有用
brew install mysql-connector-c
pip install MySQL-python
解决方案 22:
对于Python 3+版本
安装mysql-connector
为:
pip3 install mysql-connector
Python DB 连接代码示例:
import mysql.connector
db_connection = mysql.connector.connect(
host="localhost",
user="root",
passwd=""
)
print(db_connection)
输出:
> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>
这意味着数据库已正确连接。
解决方案 23:
在 Debian Buster 上,以下解决方案对我使用 Python 3.7 有效:
sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient
解决方案 24:
Python 3
确保导入顺序:
#BAD
import MySQLdb # <------ NOT here
import pymysql
pymysql.install_as_MySQLdb()
#GOOD
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb # <------- HERE!
解决方案 25:
我尝试了上述方法,但仍然没有名为“MySQLdb”的模块,最后,我成功了
easy_install mysql-python
我的环境是 unbuntu 14.04
解决方案 26:
如果您正在使用 SQLAlchemy 并且错误位于/site-packages/sqlalchemy/dialects/mysql/mysqldb.py
:
from ...connectors.mysqldb import (
MySQLDBExecutionContext,
MySQLDBCompiler,
MySQLDBIdentifierPreparer,
MySQLDBConnector
)
所以您可能错过了 mysqldb 连接器SQLAlchemy
,解决方案是在安装模块后重新安装 sqlalchemy mysql-python
。
解决方案 27:
对于通过 docker 镜像全新安装的 Ubuntu 18.04,上述任何操作对我均不起作用。
下面的方法帮我解决了这个问题:
apt-get install holland python3-mysqldb
解决方案 28:
在运行 Catalina v10.15.2 的 Mac 上,遇到以下 MySQLdb 版本冲突:
ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)
为了解决这个问题,我做了以下事情:
pip uninstall MySQL-python
pip install MySQL-python
解决方案 29:
在 Mac 上使用 mysql.connector.python 版本 8.0.24 时遇到此问题(如果代码库相同,则 Windows 中也会出现此问题)。此文件的第 51 行导入了“from django.db.backends.mysql.base import DatabaseWrapper as MySQLDatabaseWrapper”。导入的文件包含以下代码 14-20(确切的代码和您收到的错误是代码的一部分
try:
import MySQLdb as Database
except ImportError as err:
raise ImproperlyConfigured(
'Error loading MySQLdb module.
'
'Did you install mysqlclient?'
) from err
错误就在这里。不确定为什么这个导入在不同版本的 mysql 连接器中不断出现,但 8.0.23 没有导入,所以我恢复到那个版本,错误就消失了……如果你想继续使用 mysql.connector.python,这是以防万一
解决方案 30:
Windows 7 / Python 3.6.5 这对我有用:
conda 安装-y mysqlclient