今天在对数据迁移的时候遇到一坑,这个坑之前也是遇到过,在Google之后解决了,今天又遇到了,不知道怎么处理了,又开始搜索,最终解决。
故此记录问题解决的过程
Django项目,迁移数据,执行命令:
python manage.py makemigrations
报错摘录信息:
... File "/Users/donghp/.virtualenvs/blog/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 30, in <module> ‘Did you install mysqlclient or MySQL-python?‘ % edjango.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/donghp/.virtualenvs/blog/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib Referenced from: /Users/donghp/.virtualenvs/blog/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so Reason: image not found.Did you install mysqlclient or MySQL-python?
提示说缺少 mysqlclient
或 MySQL-python
,可是我 pip list
,查看了一下,是有的呀。网上说需要在项目加上一段代码将pymysql
指向 Mysqldb
在项目的根目录__init__.py
添加如下代码:
import pymysqlpymysql.install_as_MySQLdb()
注意:
不是manage.py
所在的目录
不是manage.py
所在的目录
不是manage.py
所在的目录
是项目settings所在的目录
├── __init__.py├── settings.py├── urls.py└── wsgi.py
Enjoy your code, good luck.