django.core.exceptions.ImproperlyConfigured : MySQLdb 모듈로드 오류 : MySQLdb라는 모듈이 없습니다.


94

mysql에 대한 데이터베이스에 연결하는 동안 직면 한 문제. 내가 사용한 데이터베이스 설정도 제공했습니다.

 Traceback (most recent call last):
 File "manage.py", line 10, in <module>
 execute_from_command_line(sys.argv)
 File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
utility.execute()
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/home/arundhati/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/sql.py", line 9, in <module>
from django.db import models
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend
return import_module('.base', backend_name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Databse 설정 ::

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'ar_test_db',                      # Or path to database file if using 
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      # Empty for localhost through domain sockets or   '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

도움을 주셔서 감사합니다 !!

답변:


136

python mysql 패키지가 설치되어 있지 않은 것 같습니다.

pip install mysql-python

또는 가상 환경을 사용하지 않는 경우 (* nix 호스트에서) :

sudo pip install mysql-python

가상 환경을 사용하고 있습니까? 나는 당신이 일을 정리하기 위해 할 것을 권장합니다. 이것이 옵션이 아니라면 수퍼 유저 권한으로 pip를 실행해야합니다. sudo pip install mysql-python
Ron E

2
나는 가상 환경을 사용하고 있고, 나는 mysql, django를 설치했다 ... 그러나 내가 python manage.py syncdb를 할 때 그것은 내가 게시 한 것과 같은 오류를 준다
getitstarted

혹시 버전 문제가 있습니까? 내 sql (데비안의 경우 14.14)과 함께 django 1.5, python 2.7.3을 사용하고 있습니다
getitstarted

4
파이썬 3가로 : PIP는 mysqlclient 설치
sadalsuud

1
python3에서는 작동하지 않습니다. python3에서 사용할 수 없습니다 ConfigParser 필요
gogagubi

40

python-mysqldb-MySQL에 대한 Python 인터페이스를 설치해야합니다.

시험
sudo apt-get install python-mysqldb


38

pip로 mysqlclient를 설치하는 중에 오류가 발생하면 mysql dev 라이브러리가 부족할 수 있습니다. 다음을 실행하여 설치하십시오.

apt-get install libmysqlclient-dev

mysqlclient를 다시 설치하십시오.

pip install mysqlclient

2
이었다 pip install mysqlclient. 이 파일을 requirements.txt 파일에 추가하는 것을 잊었으므로 MySQL 데이터베이스가 있고 채워져 있어도 Django 웹 서버와 상호 작용할 수 없습니다.
Blairg23 2017-09-10

감사
합니다이

13

내 대답은 @ Ron-E와 비슷하지만 몇 가지 오류 / 수정 사항이 더 있으므로 Mavericks 및 Python 2.7.6에서 Mac OSX에 대한 단계를 아래에 두었습니다.

  1. Python mysql 패키지 설치 (성공 메시지가 표시되면 아래 단계 무시)

    pip install mysql-python
  2. 위의 작업을 수행했을 때 "EnvironmentError : mysql_config not found"오류가 발생했습니다. 여기에 이미지 설명 입력 이 문제를 해결하기 위해 터미널에서 다음을 수행했습니다.

    export PATH=$PATH:/usr/local/mysql/bin
  3. 1 단계를 다시 실행하면 "오류 : 명령 'cc'가 종료 상태 1로 실패했습니다."라는 새 오류가 표시됩니다. 여기에 이미지 설명 입력 이 문제를 해결하기 위해 터미널에서 다음을 수행했습니다.

     export CFLAGS=-Qunused-arguments
     export CPPFLAGS=-Qunused-arguments
  4. 1 단계를 다시 실행하고 'Successfully installed mysql-python'성공 메시지를 받았습니다!


제안 해 주셔서 감사합니다. 나는 당신의 문제를 먼저 얻었습니다.
user2772346

나는 당신의 길을 따랐지만 내 경우에는 항상 첫 번째 오류가 발생합니다. 그리고`export CFLAGS = -Qunused-arguments`터미널에 다음 오류가 발생합니다.-bash: export: =-Qunused-arguments': not a valid identifier
RegarBoy

12

python, mysql, sequel pro 응용 프로그램을 사용하여 Mac OS X Mountain Lion에서 PyCharm에 대한 Django 개발 환경을 설정할 때이 스레드의 소유자와 동일한 오류가 발생했습니다. 그러나 Mac OS Mountain Lion x86_x64 (MySql과 Python도 동일한 아키텍처 여야 함)에서 python-mysqldb를 실행하고 이미 pip 등과 같은 모든 것을 시도한 사람들에 대한 내 대답입니다.이 문제를 해결하려면 다음 단계를 수행하십시오.

  1. 여기 에서 Python 용 MySql을 다운로드 하십시오.
  2. 다운로드 한 파일의 압축을 풉니 다. 터미널 창에서 다음을 수행하십시오. tar xvfz downloade.tar.
  3. cd / to untared 디렉토리
  4. sudo python setup.py install 실행
  5. "환경 오류 : / usr / local / bin / mysql_config not found"와 같은 오류가 발생하면 다음과 같이 경로를 추가하십시오. "export PATH = $ PATH : / usr / local / mysql / bin". 하지만 이드는 나를 도와주지 않았고 나는 다른 해결책을 찾았다. 명령 실행 끝에 다음과 같은 오류 출력이 표시됩니다.

    mysql_config의 "/path_to_file/MySQL-python-1.2.4b4/setup_posix.py"파일, 25 행, 환경 오류 발생 ( "% s 찾을 수 없음"% (mysql_config.path,))

  6. vim으로 setup_posix.py를 열고 25 행으로 이동합니다 (동일한 버전이 아니면 다를 수 있음).

  7. mysql에 '/ usr / local / mysql / bin /'과 같은 심볼릭 링크가 없다면 25 행은 편집 후 다음과 같이 보일 것입니다.

    f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))

  8. 이 후 다음과 같은 또 다른 오류가 발생했습니다.

    django.core.exceptions.ImproperlyConfigured : MySQLdb 모듈로드 오류 : dlopen (/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2) : 라이브러리가로드되지 않음 : libmysqlclient.18.dylib 참조 위치 : /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so 이유 : 이미지를 찾을 수 없음

  9. 마지막으로 콘솔에서 다음을 수행했습니다.

    sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

현재 모든 것이 잘 작동합니다. 따라서 Mac을 사용하는 사람에게 도움이되기를 바랍니다. :)


감사합니다. mysql haha를 사용하여 첫 번째 프로젝트를 실행하는 데 거의 일주일이 걸렸습니다. 휴 ...
Avigit 15.31.

고마워요! 당신은 내 하루를 구했습니다! 나는 Mac을 사용하고 있었고 같은 문제가 발생했습니다.
user2772346 jul.

7

파이썬 mysqldb라이브러리 가 없습니다 . 다음 명령 (Debian / Ubuntu 용)을 사용하여 설치합니다. sudo apt-get install python-mysqldb


이것은 대답이지만 한 줄보다 더 많은 세부 정보를 추가 할 수 있다면 좋을 것 같습니다. 감사!
Uli Köhler 2014 년

위의 명령은 MySQL 데이터베이스에 Python 인터페이스를 설치하는 데 도움이됩니다.
Haimei 2014-01-29



4

Ubuntu 16.04 및 18.04 또는 python 3 버전의 경우

sudo apt-get install python3-mysqldb

4

pyhton 버전 3.4 이상을 사용하는 경우. 당신은 설치해야

sudo apt-get install python3-dev libmysqlclient-dev 

터미널에서. 그런 다음 pip install mysqlclient가상 환경 또는 pip를 설치 한 위치에 설치하십시오.


4

나는 한 해결 이 환경에서이 문제를 :

$ pyenv --version
pyenv 1.2.9

$ python --version
Python 3.7.2

$ python -m django --version
2.1.7

./settings.py

DATABASES = {
    'default': {
        'NAME': 'my_db_name',
        'ENGINE': 'mysql.connector.django',   # 'django.db.backends.mysql'
        'USER': '<user>',
        'PASSWORD': '<pass>',
        'HOST': 'localhost',
        'PORT': 3306,
        'OPTIONS': {
            'autocommit': True,
        },
    }
}

을 사용하는 경우 다음을 'ENGINE': 'mysql.connector.django'실행하는 드라이버를 설치하십시오.

$ pip install mysql-connector-python
Successfully installed mysql-connector-python-8.0.15 protobuf-3.7.0 six-1.12.0

그것은 $ pip install mysql-python나를 위해 작동하지 않았습니다.

을 사용하는 경우 다음을 'ENGINE': 'django.db.backends.mysql'실행하는 드라이버를 설치해야합니다.
$ pip install mysqlclient

마지막으로 실행하십시오.
$ python manage.py migrate

괜찮다면 파이썬은 다음 모든 테이블 ID 데이터베이스를 생성합니다.

auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
django_admin_log
django_content_type
django_migrations
django_session

3

Ubuntu에서는 배포 저장소를 사용하는 것이 좋습니다.

sudo apt-get install python-mysqldb

2

Will과 동일한 오류 메시지로 설치 중에 누락 된 파일이 추가되므로 mysql을 먼저 설치하는 것이 좋습니다. 그래서 이후

brew install mysql

pip install mysql-python

오류없이 실행되었습니다.


명령 "/ usr / bin / python -u -c"import setuptools, tokenize; __ file __ = '/ private / var / folders / yn / nrq74lgs6kqdzcr035p_5g280000gn / T / pip-build-jwQcm5 / mysql-python / setup.py'; f = getattr (tokenize, 'open', open) ( file ); code = f.read (). replace ( '\ r \ n', '\ n'); f.close (); exec (compile (code, file , 'exec')) "install --record /var/folders/yn/nrq74lgs6kqdzcr035p_5g280000gn/T/pip-UmTWRJ-record/install-record.txt --single-version-externally-managed --compile"오류와 함께 실패 / private / var / folders / yn / nrq74lgs6kqdzcr035p_5g280000gn / T / pip-build-jwQcm5 / mysql-python /의 코드 1
tisuchi

2

이것은 나에게도 일어 났고 나는 이것이 Django 개발자뿐만 아니라 Flask에게도 공통적 인 오류가되었다고 믿습니다. 그래서이 문제를 해결하는 방법은 brew를 사용하는 것이 었습니다.

  1. brew install mysql
  2. sudo pip install mysql-python

이렇게하면 모든 문제가 해결되고 두 프레임 워크가 모두 완벽하게 작동합니다.

추신 : (나와 같은) macports를 사용하는 사람들에게는 brew가 다른 수준에서 작동하므로 문제가 될 수 있습니다. 내 조언은 macports 대신 brew를 사용하는 것입니다.

도움이 되었으면합니다.


1

나는 같은 문제를 겪고 있었는데 다음이 내 문제를 해결했습니다.

셸에서 pip install pymysql 실행

그런 다음 프로젝트 원본 디렉토리 (settings.py와 동일)에서 init.py 파일을 편집 한 다음

더하다:

pymysql 가져 오기

pymysql.install_as_MySQLdb ()

이것은 문제를 해결해야합니다.


"그런 다음 프로젝트 원본 디렉토리에서 init.py 파일을 편집하십시오."-의미 __init__.py합니까?
Alex Yu


0

다른 답변에 추가하기 위해 Django를 사용하는 경우 Django를 설치하기 전에 mysql-python을 설치하는 것이 좋습니다.



0

오류가 다음과 같은 경우

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module:
dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: 
/usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so

그런 다음 시도하십시오.

pip install python-mysqldb

0

비슷한 문제에 직면했습니다. mysql-pythonpip 를 사용하여 설치 를 시도했지만 gcc 종속성 오류로 인해 실패했습니다.

나를 위해 일한 솔루션

conda install mysql-python

이미 gcc 종속성이없는 아나콘다가 설치되어 있습니다.


당신은 거기에 정교한 수
Ayush Vatsyayan에게

-2

Python 폴더에 대한 권한이없는 것 같습니다. 시험sudo chown -R $USER /Library/Python/2.7


-3

다음 작동 모드를 시도해 볼 수 있습니다.
sudo python manage.py runserver 0.0.0.0:8000

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.