Python 当我的机器中已经有MySQL时,我还需要在Django virtual env中安装MySQL吗?
我已经在我的windows 10机器上安装了mysql 5.1,我可以通过以下方式从python连接mysql:Python 当我的机器中已经有MySQL时,我还需要在Django virtual env中安装MySQL吗?,python,mysql,django,Python,Mysql,Django,我已经在我的windows 10机器上安装了mysql 5.1,我可以通过以下方式从python连接mysql: import pymysql conn=pymysql.connect(host='localhost',user='root',password='MYSQLTB',db='shfuture') 然后我下载django frame并尝试使用它连接mysql,我所做的是: 创建my.cnf文件的内容是: [client] database = shfuture host = loc
import pymysql
conn=pymysql.connect(host='localhost',user='root',password='MYSQLTB',db='shfuture')
然后我下载django frame并尝试使用它连接mysql,我所做的是:
创建my.cnf文件的内容是:
[client]
database = shfuture
host = localhost
user = root
password = MYSQLTB
default-character-set = utf8
将settings.py更改为:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': os.path.join(BASE_DIR, 'my.cnf'),
},
}
}
然后运行:
python manage.py runserver
但有一个错误:
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install the MySQL client?
我还需要在Django virtual env中安装额外的MySQL吗?如果我可以使用现有的MySQL,当然可以。您需要使用pip安装“mysqlclient”包或“MySQL connector python”包。我想您没有在虚拟环境中安装
mysqlclient
python库
由于您使用的是Windows,因此需要从下载并安装
mysqlclient
python库。是的,您必须在虚拟环境中重新安装mysql for django。对于windows,您可以执行以下操作:-
pip安装django mysqlclient基本上,您需要将以下代码放在
manage.py
和wsgi.py
之上,如下所示:
#!/usr/bin/env python
import os
import sys
import pymysql
pymysql.install_as_MySQLdb()
# rest of the code
#/usr/bin/env python
导入操作系统
导入系统
导入pymysql
pymysql.install_as_MySQLdb()
#代码的其余部分
您还需要确保在虚拟环境中安装了pymysql
FYI:使用pymysql可能无法在django>=2.2中正常工作。您将找到一些可能有效的解决方案,如中所述。此外,django不支持pymysql作为正式的mysql连接器(票证,)。pymysql和MySQLdb都是db连接器。我假设您的django框架在默认情况下搜索MySQLdb并抛出异常,因为它找不到异常
您可以安装MySQLdb,也可以按照@ruddra的答案进行操作。我建议您使用@ruddra的答案,以防开发机器。因为在安装MySQLdb并使其正常工作时,您可能会面临很多问题(50/50的机会)
阅读以了解更多信息。您可能需要安装客户端库来访问MySQL服务器,但不需要安装MySQL服务器本身。你的问题没有区分他们。