我正在使用 Python 2.5.4 版并安装 MySQL 5.0 版和 Django。Django 在 Python 上运行良好,但在 MySQL 上运行良好。我在 Windows Vista 中使用它。
30 回答
您需要使用以下命令之一。哪一个取决于您拥有和使用的操作系统和软件。
- easy_install mysql-python(混合操作系统)
- pip install mysql-python (mix os/python 2)
- pip install mysqlclient (mix os/python 3)
- apt-get install python-mysqldb (Linux Ubuntu, ...)
- cd /usr/ports/databases/py-MySQLdb && make install clean (FreeBSD)
- yum install MySQL-python (Linux Fedora, CentOS ...)
对于 Windows,请参阅此答案:安装 mysql-python (Windows)
...请记住,python3.x 没有 MySQLdb
(我知道问题是关于 python2.x 但谷歌对这篇文章的评价很高)
编辑:如评论中所述,有一个 MySQLdb 的分支添加了 Python 3 支持:github.com/PyMySQL/mysqlclient-python
如果你的 python 版本是3.5
,做一个pip install mysqlclient
,其他的东西对我不起作用
mysqldb
是 Python 的一个模块,它没有预装或 Django。你可以mysqldb
在这里下载。
Ubuntu:
sudo apt-get install python-mysqldb
请注意,这未针对 python 3.x 进行测试
在 CMD 中
pip install wheel
pip install pymysql
在 settings.py
import pymysql
pymysql.install_as_MySQLdb()
它对我有用
对于 Windows:
pip install mysqlclient pymysql
然后:
import pymysql
pymysql.install_as_MySQLdb()
对于 python 3 Ubuntu
sudo apt-get install -y python3-mysqldb
我在ubuntu(linux),对我有用的是
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
然后最后
pip install mysqlclient
pip install PyMySQL
然后将这两行添加到您的 Project/Project/ init .py
import pymysql
pymysql.install_as_MySQLdb()
适用于 WIN 和 python 3.3+
对于任何在尝试为 寻找解决方案时来到此页面的人sqlalchemy
,您需要做的就是:
pip install PyMySQL
并调整您的连接字符串以使用 PyMySQL,从mysql://
到mysql+pymysql://
.
尝试这个。
pip install MySQL-python
如果 pip install mysqlclient 产生错误并且您使用的是 Ubuntu,请尝试:
sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient
我在windows下遇到了同样的情况,寻找解决办法。
看到这篇文章Install mysql-python (Windows)。
它指出安装这样的 pip 环境很困难,需要许多其他依赖项。
但我终于知道,如果我们使用mysqlclient
低至 的版本1.3.4
,它就不再需要那个要求了,所以试试:
pip install mysqlclient==1.3.4
我个人建议使用pymysql
而不是使用正版 MySQL 连接器,它为您提供了一个独立于平台的接口,并且可以通过pip
.
您可以像这样编辑 SQLAlchemy URL 架构:
mysql+pymysql://username:passwd@host/database
对于 Python 3.6+
sudo apt-get install libmysqlclient-dev
pip3 install mysqlclient
成功了
pip install --user mysqlclient
以上对我来说就像对我的魅力一样。我实际上是从 sqlalchemy 出错的。环境信息:
Python:3.6,Ubuntu:16.04,conda 4.6.8
蟒蛇 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()
- 使用 .转到您的项目目录
cd
。 - source/bin/activate (如果之前没有激活你的环境)。
- 运行命令
easy_install MySQL-python
如果您在 Vista 上运行,您可能需要查看Bitnami Django 堆栈。它是 Apache、Python、MySQL 等的多合一堆栈,与Bitrock跨平台安装程序打包在一起,使其非常容易上手。它可以在 Windows、Mac 和 Linux 上运行。哦,而且是完全免费的 :)
感谢 derevo,但我认为还有另一种好方法:
- 下载并安装ActivePython
- 打开命令提示符
- 类型
pypm install mysql-python
- 阅读此软件包的特定说明。
我认为pypm
比easy_install
.
Python 3
Make sure the import order:
#BAD
import MySQLdb # <------ NOT here
import pymysql
pymysql.install_as_MySQLdb()
#GOOD
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb # <------- HERE!
对于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>
这意味着,数据库已正确连接。
在 Debian Buster 上,以下解决方案适用于 python 3.7:
sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient
在 OSX 上,这些命令对我有用
brew install mysql-connector-c
pip install MySQL-python
我已经尝试了上面的方法,但仍然没有名为'MySQLdb'的模块,最后,我成功了
easy_install mysql-python
我的环境是 unbuntu 14.04
如果您正在使用 SQLAlchemy 并且错误出现在/site-packages/sqlalchemy/dialects/mysql/mysqldb.py
:
from ...connectors.mysqldb import (
MySQLDBExecutionContext,
MySQLDBCompiler,
MySQLDBIdentifierPreparer,
MySQLDBConnector
)
因此您可能错过了 mysqldb 连接器,SQLAlchemy
解决方案是在安装模块后重新安装sqlalchemy mysql-python
。
在通过 docker 映像全新安装的 Ubuntu 18.04 上,以上方法均不适用于我。
以下为我解决了它:
apt-get install holland python3-mysqldb
在我运行 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
在 mac 上使用 mysql.connector.python 版本 8.0.24 遇到了这个问题(如果代码库相同,那么问题也应该发生在 Windows 中)。第 51 行的这个文件导入“从 django.db.backends.mysql.base 导入 DatabaseWrapper 作为 MySQLDatabaseWrapper”。导入的文件有以下代码 14-20(您收到的确切代码和错误是代码的一部分
try:
import MySQLdb as Database
except ImportError as err:
raise ImproperlyConfigured(
'Error loading MySQLdb module.\n'
'Did you install mysqlclient?'
) from err
错误在这里形成。不知道为什么这个导入在不同版本的 mysql 连接器中不断返回,但 8.0.23 没有导入,所以我恢复到那个版本并且错误消失了......这是你希望继续使用 mysql.connector 的情况。Python
Win10 / Python27 这对我有用:
easy_install mysql-python
所有其他“pip install ...”因依赖错误而失败