python3安裝django初始化數據庫報錯
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclie
百度得到的結論是python3不支持mysqldb了,可以使用pymysql來代替
處理方法
找到(是默認生成的那個模塊,就是用命令生成django項目的時候默認生成的第一個模塊)自己項目模塊的__init__.py
文件,
配置一下pymysql就好。
import pymysql
pymysql.install_as_MySQLdb()
接着報錯
說mysqlclient版本太低
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 37, in <module>
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
參考解決連接
django 使用PyMySQL連接mysql
解決Django配置pymysql因版本報錯的解決方案
主要是修改一下文件的內容,這裏記錄一下mac的安裝路徑。
MAC電腦python默認的安裝路徑
base.py的文件路徑
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql
修改一下內容,註釋掉這兩行
編碼問題報錯(這個問題爲我沒遇到,先記錄一下,說不定以後用得着)
AttributeError: ‘str’ object has no attribute ‘decode’
解決方法
修改文件operations.py
,這個文件的路徑和上面的那個文件的路徑上一樣的。
#找到operations.py文件(146行),將decode改爲encode
#linux vim 查找快捷鍵:?decode
if query is not None:
query = query.decode(errors='replace')
return query
#改爲
if query is not None:
query = query.encode(errors='replace')
return query
再試試
python3 manage.py migrate
如果成功了的話會數據庫會生成這些表,這些表其實也可以不用的。
具體看文檔 編寫你的第一個 Django 應用,第 2 部分