Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当我的机器中已经有MySQL时,我还需要在Django virtual env中安装MySQL吗?_Python_Mysql_Django - Fatal编程技术网

Python 当我的机器中已经有MySQL时,我还需要在Django virtual env中安装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

我已经在我的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 = 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服务器本身。你的问题没有区分他们。