2016-09-16 21 views
0

除了上述,我使用virtualenv和virtualenvwrapper。 MariaDB服务器10.1.17通过dnf install安装无法让MySQL/MariaDB与Fedora 24上的Django 1.10.1和Python 3.5一起使用?

我正在通过第一个Django教程。我的runserver命令:

(djTut3)$ python manage.py runserver 

运行正常,并提示有关迁移的警告。

在第2部分,在这里:https://docs.djangoproject.com/en/1.10/intro/tutorial02/

我跑:

(djTut3)$ python manage.py migrate 

的指示,并得到了以下错误:

ImportError: No module named 'MySQLdb' 
During handling of the above exception, another exception occurred: 
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb' 

我做了很多的搜索,并尝试下面(除别的以外),大部分来自SO:

===

$ sudo dnf install MySQL-python 
<No error> 

$ python3 manage.py migrate 
<Same errors as before> 

$ sudo dnf install mariadb-devel 
Skipping packages with conflicts: 
(add '--best --allowerasing' to command line to force their upgrade) 

$ sudo dnf install mariadb-devel --best --allowerasing 
<No error> 

$ python3 manage.py migrate 
<Same errors as before> 

$ pip3 install mysql-python 
ImportError: No module named 'ConfigParser' 

$ pip3 install mysql-connector 
<No error> 

$ pip3 install mysql-client 
_mysql.c:40:20: fatal error: Python.h: No such file or directory 
#include "Python.h" 
compilation terminated. 
error: command 'gcc' failed with exit status 1 

$sudo dnf install python-devel mysql-devel 
<already installed> 

===

现在,我仍然不能得到

(djTut3)$ python manage.py migrate 

工作,并

(djTut3)$ python manage.py runserver 

相同的错误的迁移命令。

我的settings.py包括:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'djTut3', 
     'USER': os.environ['DB_USERNAME'], 
     'PASSWORD': os.environ['DB_PASSWORD'], 
     'HOST': '127.0.0.1', 
     'PORT': '', 
    } 
} 

任何人都可以提供一些帮助呢?

非常感谢您的回复。

回答

1

这就是为什么你应该通过pip来安装Python包,而不是你的OS包管理器。 MySQLdb不适用于Python 3,正如您在通过pip3尝试时从错误中看到的那样。

您安装mysql-client时出现问题的原因大概是因为您需要python-devel软件包或任何与Fedora等效的软件包;这将是一个DNF安装。

但是,由于您使用mysql连接器成功,您可以使用它;您需要配置Django才能使用它,如that library's documentation所示,将'django.db.backends.mysql'替换为'mysql.connector.django'

+0

我用我的设置文件中的'mysql.connector.django'替换了'django.db.backends.mysql';现在'python manage.py runserver'工作。但是,虽然'python manage.py migrate'运行,它会产生以下错误: 'mysql.connector.errors.DatabaseError:1265:在行1处'应用'列的数据被截断 – jazcap53

+0

在处理上述异常期间,发生了另一个异常: django.db.utils.DatabaseError:数据被截断列“应用”在1'行 这个新发布搜索产生了建议撤消设置更改,这是没有帮助的。你有什么进一步的想法? – jazcap53

+0

重新运行'python manage.py migrate'我现在得到错误: 'mysql.connector.errors.ProgrammingError:1050(42S01):表'django_content_type'已经存在 在处理上述异常的过程中,发生了另一个异常: django.db.utils.ProgrammingError:表'django_content_type'已存在' – jazcap53