ImportError : MySQLdb라는 모듈이 없습니다.


124

내 웹 응용 프로그램의 로그인 페이지를 만들기 위해 다음 자습서를 참조하고 있습니다. http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

데이터베이스에 문제가 있습니다. 나는 얻고있다

ImportError: No module named MySQLdb

내가 실행할 때

http://127.0.0.1:5000/testdb

튜토리얼 easy_install, sudo apt-get install에서 언급 한 python mysql을 설치하는 가능한 모든 방법을 시도했습니다.

내 가상 환경에 mysql을 설치했습니다. 내 디렉토리 구조는 튜토리얼에서 설명한 것과 동일합니다. 모듈이 내 시스템에 성공적으로 설치되었지만 여전히이 오류가 발생합니다.

도와주세요. 원인이 될 수 있습니다.


MySQL을 설치했지만 Python 용 MySQLdb 패키지를 설치 했습니까?
Ffisegydd

sudo apt-get install mysql-python을 사용했습니다. 내가 pip를 사용할 때 mysql_config에 대한 환경 오류가 발생했습니다
user3182194

mysql이 내 가상 환경에 설치되고 제대로 작동하며 mysqldb도 설치되었습니다.
user3182194

답변:


277

바이너리 확장을 컴파일하는 데 문제가 있거나 불가능한 플랫폼에서 문제가있는 경우 순수한 Python PyMySQL바인딩을 사용해 볼 수 있습니다 .

간단히 다음 pip install pymysql과 같이 시작하도록 SQLAlchemy URI를 전환하십시오.

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'

시도해 볼 수 있는 다른 드라이버 도 있습니다.


내가 뭐 놓친 거 없니? 여기에 나열되지 않은 이유는 무엇입니까? 특히 방언 이름 : docs.sqlalchemy.org/en/latest/core/engines.html . 이것은 내가 잘못한 것이 었습니다. 감사합니다.
CashIsClay

URI는 :) 사용하는 커넥터에 따라 다소 의존하는 DB를 참고
브레이든 홀트

이것은 나를 위해 python2.7. *에서 작동하지 않았습니다. pip install MySQL-python일의 사용 .
Rahul Goyal 2018

1
이것은 flask-sqlalchemy 오류에 대한 해결책을 찾는 동안 많은 도움이되었습니다. 나는 직면했다 : 1. WSGI 응용 프로그램을 실행하는 동안 오류 ModuleNotFoundError : 'MySQLdb'라는 모듈 없음 2. (_mysql_exceptions.OperationalError) (2006, 'SSL 연결 오류 : SSL_CTX_set_tmp_dh 실패') (이 오류에 대한 배경 : sqlalche.me/e/e3q8 ) 대단히 감사합니다. 다른 사람들이이 오류 설명이있는이 솔루션을 제가 한 것처럼 더 빨리 찾을 수 있기를 바랍니다.
ben

CentOS에서 작업했으며 가장 OS에 의존하지 않는 답변 인 것 같습니다. 감사!
trpt4him

94

또는 이것을 시도하십시오 :

apt-get install python-mysqldb

9
나는 질문에 대한 대답이 생각
codersofthedark

1
파이썬 - mysqldb 때로는 VC ++ 라이브러리와 같은 일부 종속성을 가지고 않습니다 64 비트 OS에없는 작업
니마 Soroush

1
이것은 나에게도 효과적이었습니다. 파이썬 2.7와 우분투 16.04
genepool99

이 답변이 문제를 해결하지 못한 사람들의 경우 이것은 virtualenv 문제 때문일 수 있습니다. stackoverflow.com/a/43984484
Chen Levy

더 정확하게 :sudo apt-get install python-mysqldb
Tina J

24

시도해 주시겠습니까

pip install mysqlclient

2
파이썬 3.7.3에서 저를 위해 작동합니다
nsssayom

1
공유해 주셔서 감사합니다. Windows를 사용할 때 작동했지만 Ubuntu에서 동일한 앱을 실행하려고 할 때 mysqlclient( OSError: mysql_config not found)에 몇 가지 문제가 있었는데 수락 된 답변으로 해결되었습니다.
Bilal

anaconda 및 python 3.7.6으로 OSX에서 작동
Saaru Lindestøkke

16

내 문제는 다음과 같습니다.

return __import__('MySQLdb')
ImportError: No module named MySQLdb

그리고 내 결심 :

pip install MySQL-python
yum install mysql-devel.x86_64

처음에는 방금 MySQL-python을 설치했지만 문제는 여전히 존재했습니다. 따라서이 문제가 발생하면 mysql-devel도 고려해야한다고 생각합니다. 도움이 되었기를 바랍니다.


2
pip install MySQL-python그래, 그 티켓입니다
커비

이는 Windows 환경의 Microsoft Visual C ++ 라이브러리에 따라 다릅니다
Erizo

15

SQLAlchemy에서 작업 할 때이 문제가 발생했습니다. MySQL 용 SQLAlchemy에서 사용하는 기본 언어는 mysql+mysqldb.

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

No module named MySQLdb위의 명령이 실행될 때 " "오류가 발생했습니다. 그것을 수정하기 위해 mysql-python모듈을 설치 하고 문제가 수정되었습니다.

sudo pip install mysql-python

3
mysql-python을 설치하기 전에 mysql 또는 msyql_config 명령이 포함 된 항목을 설치해야합니다.
mxi1

8

내 경험에서도 Python 버전에 따라 다릅니다.

Python 3을 사용하는 경우 @DazWorrall 답변이 잘 작동했습니다.

그러나 Python 2를 사용하는 경우

sudo pip install mysql-python

SQLAlchemy URI를 변경하지 않고 'MySQLdb'모듈을 설치합니다.


2
누군가가 여기에 있고 환경 오류가 발생하면 mysql_config를 찾을 수 없습니다. sudo apt-get install libmysqlclient-dev가 도움이 될 수 있습니다. 원래 답변 : stackoverflow.com/a/5178698/2190689
ssi-anik

구성 파서 유형의 오류가 발생하면 이것을 볼 수 있습니다. stackoverflow.com/a/23978968/2190689
ssi-anik

7

그래서이 문제를 해결하는 방법을 찾기 위해 약 5 시간을 보냈습니다.

./manage.py makemigrations

Ubuntu Server LTS 16.1, 전체 LAMP 스택, Apache2 MySql 5.7 PHP 7 Python 3 및 Django 1.10.2를 사용하여 이에 대한 좋은 답을 찾기 위해 정말 고생했습니다. 사실 여전히 만족스럽지 않지만 저에게 효과가 있었던 유일한 해결책은 이것뿐입니다.

sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev

(가상 환경 내부에서)

pip install mysqlclient

나는 새로운 웹 서버를 설정하려고 할 때 dev 설치를 사용하는 것을 정말로 싫어하지만, 불행히도이 구성은 내가 취할 수있는 유일한 가장 편안한 경로였습니다.


'-dev'패키지와 컴파일러가없는 경우 컴파일해야하는 C 확장 구성 요소가있는 Python 모듈을 설치할 수 없습니다. 유일한 옵션은 추가 비트가있는 별도의 빌드 상자를 사용하고 Python 휠 파일을 빌드하는 것입니다. 그런 다음 바퀴를 대상 시스템에 복사하고 대신 바퀴에서 패키지를 설치하십시오.
Graham Dumpleton 2016 년

3

하지만 @Edward 반 Kuik대답은 정확한지, 그것은 고려하지 않는 이상 VIRTUALENV V1.7과와 문제 .

특히 Ubuntu에 python-mysqldbvia apt를 설치 하면 아래 /usr/lib/pythonX.Y/dist-packages에 배치되지만이 경로는 기본적으로 virtualenv의 sys.path.

따라서이 문제를 해결 하려면 다음과 같이 실행하여 시스템 패키지로 virtualenv를 만들어야합니다.

virtualenv --system-site-packages .venv


0

권한과 관련된 오류가 너무 많습니다. 이것을 시도해 볼 수 있습니다.

xcode-select --install

0
yum install MySQL-python.x86_64

나를 위해 일했습니다.


0

우분투 20에서는 다음을 시도해 볼 수 있습니다.

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