我是Python的新手,并尝试设置一个Django项目来使用MySql。我已经阅读了有关该主题的文档以及其他一些StackOverflow帖子,但我仍然无法使其工作。
当我尝试在Django中运行迁移时,我收到以下错误:
Error loading MySQLdb module: No module named 'MySQLdb'
我已经安装了推荐的MySql Python Connector (2.0.1)选择Ubuntu(因为我在Mint Linux上)。它安装正确。我仍然得到错误。我不需要将这个库添加到项目或其他任何东西,对吗?看起来python应该只是意识到这一点并成功运行。我能做什么?感谢。
编辑:我忘了提到:我正在运行Python 3.4 - 许多典型的解决方案仍在使用2.7,所以它们不起作用,所有3.0的解决方案都试过没有成功。答案 0 :(得分:17)
在Ubuntu Server 16.04上,现有的答案都没有对我有用,所以我跑了:
sudo apt-get install libmysqlclient-dev
sudo -H pip3 install mysqlclient
第一个命令让我获得第二个命令所需的mysql配置。
答案 1 :(得分:14)
pip install mysqlclient
适用于我python3.5
答案 2 :(得分:12)
我需要在settings.py中看到你的DATABASES配置,但看起来它正在尝试加载MySQLDB而不是你安装的Mysql Python Connector。 DATABASES看起来应该是这样的:
DATABASES = {
'default': {
'NAME': 'mydatabase',
'ENGINE': 'mysql.connector.django',
'USER': 'myuser',
'PASSWORD': 'secretpassword',
'OPTIONS': {
'autocommit': True,
},
}
}
注意ENGINE部分......告诉Django使用mysql连接器而不是MySQLDB ...
此处提供更多信息: http://bunwich.blogspot.com/2014/02/finally-mysql-connector-that-works-with.html http://dev.mysql.com/doc/connector-python/en/connector-python-django-backend.html
如果您希望使用South:
www.pythonanywhere.com/wiki/UsingMySQL
您可能需要注意Oracle连接器是GPL,使用该代码可能存在许可证问题。见这里:
groups.google.com/forum /#!话题/ Django的开发者/ 8r_RVmUe5ys
Django 1.7文档建议使用mysqlclient驱动程序......
docs.djangoproject.com/en/1.7/ref/databases/ - 请参阅有关Mysql DB API驱动程序的部分
该客户的pypi.python.org/pypi/mysqlclient ...
-Scott
答案 3 :(得分:11)
如果您可以安装pymysql - 这对我来说非常适合Python 3.4 - 那么将这些行添加到Django中的manage.py文件中:
try:
import pymysql
pymysql.install_as_MySQLdb()
except ImportError:
pass
这将使pymysql功能像MySQLdb一样,并为我工作。
答案 4 :(得分:0)
如果像我一样,您正在使用Linux安装,并且在大多数情况下Linux仍需要Python 2.7。这意味着
pip install mysqlclient
将安装MySQL客户端2.7,该客户端是从Python 3分割而来的。要使其安装到3.x,您需要使用
pip3 install mysqlclient
我不必安装任何软件包,但是已经安装了mysql-common
(Raspbian安装),因此您的行程可能有所不同