Google 앱 엔진에서 mysql을 사용할 수 없습니다. - MySQLdb 모듈을 로드하는 중 오류가 발생했습니다. _mysql이라는 모듈이 없습니다. 나는 CloudSQL을 사용하고 있습니다

Google 앱 엔진에서 mysql을 사용할 수 없습니다. - MySQLdb 모듈을 로드하는 중 오류가 발생했습니다. _mysql이라는 모듈이 없습니다. 나는 CloudSQL을 사용하고 있습니다

mysql 연결을 시도하기 위해 googleAppEngineLauncher를 사용하고 있습니다.

그것은 로그를 제공합니다

 File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/db/backends/mysql/base.py", line 17, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql

나는 해냈다pip install MySQL-python

같은 명령도 python manage.py dbshell작동하고 cloudsql 백엔드에 연결됩니다.

거기 있는 모든 테이블에 접근할 수 있어요.

그러나 실행하면 동일한 오류가 발생합니다.

mysql 5.6이 설치되어 있습니다.

app.yaml에 다음을 추가합니다.

- name: MySQLdb
  version: "latest"

또한 라이브러리 디렉토리를 확인했는데 mysqldb가 없었기 때문에 도움이 되지 않습니다.

내 설정 -

import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
            'HOST': '173.194.xxx.xxx',
            'NAME': 'my_database',
            'USER': 'root',
            'PASSWORD': 'xxxxxxxx',
    }
}

답변1

pip를 통해 MySQL-Python을 설치한 경우 C 확장인 '_mysql' 확장을 빌드하는 데 실패했을 수 있으며 빌드하려면 MSVC++ 9.0이 필요합니다.

building '_mysql' extension

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

Windows에서 가장 좋은 해결책은 다음과 같은 MySQL-python용 바이너리 설치 프로그램을 사용하는 것입니다.http://sourceforge.net/projects/mysql-python. 원하는 경우 Python용 MSVC++ 컴파일러를 다운로드할 수 있지만 C 헤더 및 라이브러리를 포함하여 MySQL 개발자 빌드도 설치해야 하며 다른 문제가 발생할 수 있습니다.

물론 App Engine Python 런타임에는 앱을 배포하는 원격 환경에 MySQLdb가 이미 포함되어 있으므로 이는 개발 서버에서 로컬로 앱을 실행하는 경우에만 중요합니다.

답변2

당신이 나와 같고 Python 3.5와 함께 Ubuntu 서버를 사용하고 있다면 이 문제를 해결하기 위해 몇 시간 동안 고생했습니다. 아파치 서버는 virtualenv를 통해 진행했던 wsgi 설정을 사용하여 시작되지 않습니다.

그래서 나는 모든 것을 시도했습니다. 이것을 pip 설치하고 pip 설치하십시오. 따라서 Python 3.5의 경우 Python과 django를 통해 mysql에 연결하려면 pip 라이브러리 mysqlclient가 설치되어 있어야 합니다. 그러나 나는 당신과 같은 오류를 계속 얻었습니다 ... 결국 내가 한 일은 실행되었습니다. easy_install mysqlclient 그렇게 간단합니다. easy_install이 한 번에 가져와 설치하는 일부 종속성이 누락되었다고 생각합니다.

행운을 빕니다. 그것이 당신이나 터널 끝에서 빛을 찾기 위해 이 페이지를 발견한 다른 누군가에게 도움이 되기를 바랍니다.

관련 정보