정은지*_*정은지 3 python mysql django
我用python 3.7.10搭建了一个虚拟环境,\n通过安装mysql和mysqlclient\n是mysql 8.0.28,mysqlclient 2.1.0。
\n运行 python manage.py migrate\n 时,结果如下:
\n(test) \xe2\x9e\x9c backend git:(main) python manage.py migrate\nTraceback (most recent call last):\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in <module>\n from . import _mysql\nImportError: dlopen(/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 0x0002): symbol not found in flat namespace '_mysql_affected_rows'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "manage.py", line 22, in <module>\n main()\n File "manage.py", line 18, in main\n execute_from_command_line(sys.argv)\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line\n utility.execute()\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute\n django.setup()\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/__init__.py", line 24, in setup\n apps.populate(settings.INSTALLED_APPS)\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate\n app_config.import_models()\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/apps/config.py", line 301, in import_models\n self.models_module = import_module(models_module_name)\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/importlib/__init__.py", line 127, in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n File "<frozen importlib._bootstrap>", line 1006, in _gcd_import\n File "<frozen importlib._bootstrap>", line 983, in _find_and_load\n File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked\n File "<frozen importlib._bootstrap>", line 677, in _load_unlocked\n File "<frozen importlib._bootstrap_external>", line 728, in exec_module\n File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/contrib/auth/models.py", line 3, in <module>\n from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/contrib/auth/base_user.py", line 48, in <module>\n class AbstractBaseUser(models.Model):\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/db/models/base.py", line 122, in __new__\n new_class.add_to_class('_meta', Options(meta, app_label))\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/db/models/base.py", line 326, in add_to_class\n value.contribute_to_class(cls, name)\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/db/models/options.py", line 207, in contribute_to_class\n self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/utils/connection.py", line 15, in __getattr__\n return getattr(self._connections[self._alias], item)\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/utils/connection.py", line 62, in __getitem__\n conn = self.create_connection(alias)\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/db/utils.py", line 204, in create_connection\n backend = load_backend(db['ENGINE'])\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/db/utils.py", line 111, in load_backend\n return import_module('%s.base' % backend_name)\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/importlib/__init__.py", line 127, in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 15, in <module>\n import MySQLdb as Database\n File "/usr/local/Caskroom/miniforge/base/envs/test/lib/python3.7/site-packages/MySQLdb/__init__.py", line 24, in <module>\n version_info, _mysql.version_info, _mysql.__file__\nNameError: name '_mysql' is not defined\nRun Code Online (Sandbox Code Playgroud)\n当我尝试重新安装它时,它说它已经安装了。\n我认为 python 找不到 mysql 路径。\n我查了很多问题,但无法解决我的问题。\n自从我第一次启动 python,我找不到原因。
\n在此先感谢您的帮助。
\n我从哪里开始发现问题?
\n小智 13
这是因为MySQLdb中的mysql C库(_mysql*.so)版本与Python版本不兼容。激活虚拟环境并尝试以下操作:
pip uninstall mysqlclient
pip install mysqlclient --no-cache-dir
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7569 次 |
| 最近记录: |