Использование MySQL с dev_appserver (Google App Engine) и Google SQL Service - PullRequest
10 голосов
/ 12 сентября 2011

Я использую Google App Engine и Google SQL Service и хотел бы использовать опцию

dev_appserver.py --mysql_user = имя пользователя myapp

для использования локальной базы данных MySQL в целях разработки и службы SQL в среде prod.

У меня установлен и работает MySQLdb:

/usr/bin>>python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> 

Однако, когда я запускаю команду dev_appserver, я получаю следующую ошибку:

zipimporter('/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg', 'MySQLdb/')
ERROR    2011-09-12 09:34:53,541 rdbms_mysqldb.py:90] The rdbms API is not available because the MySQLdb library could not be loaded.

Я убедился, что MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg находится в этом месте (/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site -пакеты /) и что это доступно.

Есть идеи, что может быть причиной этой ошибки?

Полная информация о стеках приведена ниже для информации:

/Users/eddieboyd>>dev_appserver.py --debug --mysql_user=mysql  eddiehelloworld
Warning: You are using a Python runtime (2.7) that is more recent than the production runtime environment (2.5). Your application may use features that are not available in the production environment and may not work correctly when deployed to production.
INFO     2011-09-12 09:34:53,290 appengine_rpc.py:159] Server: appengine.google.com
INFO     2011-09-12 09:34:53,304 appcfg.py:449] Checking for updates to the SDK.
DEBUG    2011-09-12 09:34:53,305 appengine_rpc.py:364] Sending HTTPS request:
POST /api/updatecheck?release=1.5.3&timestamp=1311108376&api_versions=%5B%271%27%5D HTTPS/1.1
Host: appengine.google.com
X-appcfg-api-version: 1
Content-type: application/octet-stream
User-agent: appcfg_py/1.5.3 Darwin/10.8.0 Python/2.7.2.final.0


INFO     2011-09-12 09:34:53,465 appcfg.py:466] The SDK is up to date.
WARNING  2011-09-12 09:34:53,465 datastore_file_stub.py:512] Could not read datastore data from /var/folders/++/++71vE++6+0++4RjPqRgNE+0Eyo/-Tmp-/dev_appserver.datastore
INFO     2011-09-12 09:34:53,478 py_zipimport.py:148] zipimporter('/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg', 'MySQLdb/')
ERROR    2011-09-12 09:34:53,541 rdbms_mysqldb.py:90] The rdbms API is not available because the MySQLdb library could not be loaded.
ERROR    2011-09-12 09:34:53,541 dev_appserver_main.py:638] <type 'exceptions.NotImplementedError'>: Unable to find the MySQLdb library. Please see the SDK documentation for installation instructions.
DEBUG    2011-09-12 09:34:53,543 dev_appserver_main.py:640] Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_main.py", line 635, in main
    dev_appserver.SetupStubs(appinfo.application, **option_dict)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 4668, in SetupStubs
    rdbms_mysqldb.connect(database='')
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/rdbms_mysqldb.py", line 96, in connect
    'Unable to find the MySQLdb library. Please see the SDK '
NotImplementedError: Unable to find the MySQLdb library. Please see the SDK documentation for installation instructions.

Ответы [ 3 ]

3 голосов
/ 21 октября 2011

Бедняжка.

Я добавил

"import MySQLdb"

в dev_appserver.py.

Теперь работает.

1 голос
/ 06 февраля 2012

Убедитесь, что используется последняя версия AppEngine SDK , которая в настоящее время является версией 1.6.2.

После этого установите пакет для поддержки Python mysql: python-mysqldb.

0 голосов
/ 09 марта 2012

Возможно, в вашей системе не требуется модуль MySQL.На Fedora 16 64 бит я решил это, установив модуль Python MySQL:

yum install MySQL-python
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...