2016-09-16 20 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