programing

Django 오류: _mysql이라는 이름의 모듈이 없습니다.

sourcejob 2022. 10. 25. 17:43
반응형

Django 오류: _mysql이라는 이름의 모듈이 없습니다.

디폴트 django의 squittedb에서 prod mariadb 데이터베이스로 앱을 이행하고 있습니다.python 3.3 + centos 7 + django 1.8 + apache 환경이 있습니다.sqlite에서는 모든 것이 정상적으로 동작하고 있습니다만, 이행 후에 Apache를 재기동하면 다음과 같은 에러가 발생합니다.

Traceback (most recent call last):
  File "/usr/local/mainproject/mysite/mysite/wsgi.py", line 23, in <module>
  application = get_wsgi_application()
  File "/usr/local/lib/python3.3/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
django.setup()
  File "/usr/local/lib/python3.3/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.3/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models(all_models)
  File "/usr/local/lib/python3.3/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
  File "/usr/local/lib/python3.3/site-packages/django/contrib/auth/models.py", line 41, in <module>
class Permission(models.Model):
  File "/usr/local/lib/python3.3/site-packages/django/db/models/base.py", line 139, in __new__
new_class.add_to_class('_meta', Options(meta, **kwargs))
  File "/usr/local/lib/python3.3/site-packages/django/db/models/base.py", line 324, in add_to_class
value.contribute_to_class(cls, name)
  File "/usr/local/lib/python3.3/site-packages/django/db/models/options.py", line 250, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/usr/local/lib/python3.3/site-packages/django/db/__init__.py", line 36, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/usr/local/lib/python3.3/site-packages/django/db/utils.py", line 240, in __getitem__
backend = load_backend(db['ENGINE'])
  File "/usr/local/lib/python3.3/site-packages/django/db/utils.py", line 111, in load_backend
return import_module('%s.base' % backend_name)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
  File "/usr/local/lib/python3.3/site-packages/django/db/backends/mysql/base.py", line 27, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql

https://docs.djangoproject.com/en/1.8/ref/databases/ #sysql-db-api-sysql 클라이언트를 설치했습니다.내가 해낸 것 보다.py syncdb가 정상적으로 종료되었습니다.데이터베이스 구조를 확인했습니다.모든 데이터가 이행되어 있습니다.하지만 내 앱 시작 시 아직 그런 오류가 발생해요.

솔루션은 다음과 같습니다.비공식 libs https://github.com/nakagami/django-cymysql/ 를 사용하는 경우 django 를 사용하여 설치 및 구성이 간단합니다.

$ pip install cymysql
$ pip install django-cymysql

이 엔진을 장고의 설정에 추가하는 것 말고.py:

DATABASES = {
'default': {
    'ENGINE': 'mysql_cymysql',
    'NAME': 'some_what_database',
    'HOST': ...,
    'USER': ...,
    'PASSWORD': ...,
   }
}

이것을 사용해 보세요.이것으로 문제가 해결되었습니다.

pip install MySQL-python

Python3에서, 나는 다음과 같이 추가해야만 했다.mysqlclient요건에 준거하여MySQL-python는 Python3를 지원하지 않습니다.

언급URL : https://stackoverflow.com/questions/34283570/django-error-no-module-named-mysql

반응형