2011-09-12 10 views
10

estoy usando Google App Engine y Google servicio de SQL, y me gustaría utilizar la opciónEl uso de MySQL con dev_appserver (Google App Engine) y Google servicio de SQL

dev_appserver.py --mysql_user = nombre de usuario miaplicacion

con el fin de utilizar una base de datos MySQL local para fines de desarrollo, y el Servicio SQL en el entorno de prod.

que tienen MySQLdb instalado y de trabajo:

/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 
>>> 

Sin embargo, cuando ejecuto el comando dev_appserver, me sale el siguiente error:

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. 

He verificado que el MySQL_python-1.2.3 -py2.7-macosx-10.6-intel.egg está en la ubicación (/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/) y está accesible.

¿Alguna idea de qué podría estar causando este error?

StackTrace completa proporcionada a continuación para obtener información: solución

/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. 
+0

me encontré con un tutorial paso a paso [aquí] (http://howto.pui.ch/post/39245389801/tutorial -django-on-appengine-using-google-cloud-sql) –

Respuesta

3

Pobre del hombre.

que añade

"MySQLdb importación"

en dev_appserver.py.

Funciona ahora.

+0

Lo había agregado a mi bash_profile. Este fijada por la línea de comandos, pero no para AppEngineLauncher: 'DYLD_LIBRARY_PATH exportación =/usr/local/mysql/lib' me fijo al hacer un enlace simbólico: ' sudo ln -s/usr/local/mysql/lib/libmysqlclient.18.dylib/usr/lib/libmysqlclient.18.dylib' – blackjack75

1

Asegúrese de utilizar la última versión del AppEngine SDK que actualmente es la versión 1.6.2.

Después de eso, instale el paquete para python mysql support: python-mysqldb.

0

Quizás su sistema no tenga el módulo MySQL requerido. En Fedora 16 64 bits, Solucioné esto instalando el módulo Python MySQL:

yum install MySQL-python