我正在为我的应用程序设置一个 Django 后端。我正在尝试将默认的 sqlite 数据库更改为 mysql。在执行第一次迁移时,我收到以下错误:
Traceback(最近一次调用最后一次):文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/backends/mysql/base.py”,第 15 行,在 import MySQLdb作为数据库文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/MySQLdb/init .py ”,第 18 行,在 import _mysql ImportError: dlopen(/Users/user1/djangoApp/djangoProject /env/lib/python3.6/site-packages/_mysql.cpython-36m-darwin.so, 2):库未加载:@rpath/libmysqlclient.21.dylib 引用自:/Users/user1/djangoApp/djangoProject/ env/lib/python3.6/site-packages/_mysql.cpython-36m-darwin.so 原因:找不到图像
上述异常是以下异常的直接原因:
回溯(最后一次调用):文件“manage.py”,第 15 行,在 execute_from_command_line(sys.argv) 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/ core/management/ init .py”,第 381 行,在 execute_from_command_line utility.execute () 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/core/management/init中。 py”,第 357 行,在执行 django.setup() 文件“ /Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/init.py”,第 24 行,在 setup apps.populate(settings.INSTALLED_APPS) 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/apps/registry.py”,行112,在填充 app_config.import_models() 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/apps/config.py”,第 198 行,在 import_models self.models_module = import_module(models_module_name) 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/importlib/init .py ”,第 126 行,在 import_module return _bootstrap._gcd_import(name[level:], package, level)文件“”,第 994 行,在 _gcd_import 文件“”中,第 971 行,在 _find_and_load 文件中“”,第 955 行,在 _find_and_load_unlocked 文件中“”,第 665 行,在 _load_unlocked
文件“”,第 678 行,在 exec_module 文件“”,第 219 行,在 _call_with_frames_removed 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/contrib/auth/models.py ”,第 2 行,从 django.contrib.auth.base_user 导入 AbstractBaseUser,BaseUserManager 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/contrib/auth/base_user.py ”,第 47 行,在类 AbstractBaseUser(models.Model):文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/models/base.py”,第 101 行, 在新 new_class.add_to_class('_meta', Options(meta, app_label)) 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/models/base.py”,行305,在 add_to_class value.contribute_to_class(cls, name) 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/models/options.py”,第 203 行,在贡献类 self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/init .py ” ,第 33 行,在getattr 返回 getattr(connections[DEFAULT_DB_ALIAS], item) 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/utils.py”,第 202 行,在getitem中 backend = load_backend(db['ENGINE']) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/utils.py", line 110, in load_backend return import_module ('%s.base' % backend_name) 文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/importlib/init .py ”,第 126 行,在 import_module return _bootstrap._gcd_import(name[level: ],包,级别)来自 err django 的文件“/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/backends/mysql/base.py”,第 20 行,在) .core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错。
- 操作系统:macOS Mojave
- 框架:Django
- 我正在使用虚拟环境
我已经使用命令安装了“mysqlclient”
pip3 安装 mysqlclient
我已验证安装位置下存在 mysqlclient 文件夹。
我已经启动并运行了 mysql 服务器。
我在网上尝试了许多可用的解决方案,但没有任何效果
重现:
1 - 使用启动一个 django 项目
“django-admin startproject djangoApp”
2 - 安装并启动 mysql 服务器。
3 - 将入口应用的settings.py文件更新为如下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangoApp',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': ''
}
}
4 - 现在尝试使用迁移
python manage.py 迁移
预期:迁移应该成功
实际:迁移失败并出现给定错误
我是 Django 新手