2011-12-23 14 views
8

He instalado Python 2.7.2 (Win7 de 32 bits) y Google App Engine SDK 1.6.1 para Win7 en una versión de 64 bits sistema que ejecuta Win7 Home Premium. Ubicaciones de carpeta predeterminadas para Python y GAE. Cuando intento ejecutar el proyecto helloworld hello world como se describe en el documento Getting Started de Google Python, el botón de "exploración" del iniciador nunca se activa. Se supone que GAE SDK funciona bien con Python 2.7.Python 2.7.2 y Google App Engine SDK 1.6.1 en Win 7 Home Premium no funciona

¿Existe un listado completo en cualquier lugar de las variables de entorno necesarias para que esta configuración funcione? Hasta ahora, todas las publicaciones que he visto provienen de usuarios que han superado con creces este paso absolutamente básico.

+2

Puede intentar ejecutar su proyecto desde la línea de comandos y ver si eso si preferible para ti Utilizo la línea de comando en lugar del iniciador en Windows 7 con Python 2.7 y no uso el iniciador porque obtengo más control de la línea común: 'python dev_appserver.py project_name' –

Respuesta

0

¿Ve algo en los registros de GAE SDK?

¿Qué navegador estás usando? ¿Cuál es tu navegador predeterminado?

La configuración de seguridad predeterminada en IE requiere que habilite el acceso a la intranet.

Recientemente tuve que reconstruir mi Win7 dev box. Chrome fue mi navegador predeterminado. Cuando instalé GAE SDK v1.6.1 tuve un problema similar al que describes.

Comprobé los registros y jugué con la configuración del navegador para resolverlo.

Mi recuerdo fue que una vez que hice IE 9 mi navegador predeterminado de nuevo, vi el error de seguridad de la intranet. Después de habilitar el acceso a los sitios de la intranet como localhost: 8080, las cosas empezaron a funcionar bien, pero la puesta en marcha a veces fue lenta. Luego convertí a Chrome en mi navegador predeterminado nuevamente y la puesta en marcha se volvió un poco más rápida y confiable.

+0

Por los registros de" GAE SDK ", ¿usted? significa los registros para el lanzador? ¿Cómo los obtengo? Veo una opción de "Consola SDK" en el menú, pero está permanentemente desactivada (GAE 1.7.5 en Win7). –

3

Los documentos de Google para configurar GAE con Python 2.7 tienen algunos problemas. Si intentas iniciar la aplicación básica "hello world" a través de la interfaz de GUI App Engine, después de seguir las instrucciones, ¿probablemente estás viendo texto en rojo y todos los botones están atenuados?

Si es así, es porque hay errores dentro de su programa helloworld.py - aquí es donde fallaron las instrucciones de Google.

comunicado la importación que tienen en las instrucciones:

import webapp2 

Esta falla, tiene que apuntar a la instancia local de aplicación de web de GAE. Además, su programa Python 2.7 está incompleto. Si nos fijamos en el ejemplo 2.5 Python, podrás ver el programa completo (es posible que tenga que modificar webapp -> webapp2 para Python 2.7?):

from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 

class MainPage(webapp.RequestHandler): 
    def get(self): 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.response.out.write('Hello, webapp World!') 

application = webapp.WSGIApplication(
            [('/', MainPage)], 
            debug=True) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 

última cosa, el archivo YAML en las instrucciones se refieren Google a "helloworld.app" - No puedo confirmar esto, pero creo que tiene que ser "helloworld.py" ?? No sé, puedo estar equivocado.

Han pasado un par de meses desde que publicó la pregunta, si descubrió algún detalle, no dude en actualizar esta pregunta.

+0

En realidad, el programa Python de Google funciona correctamente. Resulta que las líneas 'def main()', 'if __name__' line y' from' que ha escrito _not_ no son necesarias para webapp2 en Python 2.7. Esos fueron para la biblioteca de aplicaciones web más antiguas (no para webapp2) ([fuente] (https://developers.google.com/appengine/docs/python/python25/migrate27#wsgi)). Puede verificar esto presionando el botón Ejecutar en [hello world tutorial] de Google (https://developers.google.com/appengine/docs/python/gettingstartedpython27/helloworld), que lo llevará al apéndice donde está funcionando el tutorial. correctamente. – pghprogrammer4

0

estoy bastante seguro de que es, ya que ha cambiado la codificación de ANSI a otro tipo (como UTF-8) en app.yaml,

cambiarlo de nuevo a ANSI, a continuación, puede ejecutar el proyecto sobre la buscador de motor de la aplicación Google.

Por cierto, el tutorial de helloworld en google no tiene ningún problema.

2

Estaba enfrentando el mismo problema, el botón de examinar estaba deshabilitado. Ejecuté el comando dev_appserver.py helloworld en el símbolo del sistema y luego abrí localhost: 8080 en mi navegador el programa hello world se ejecutó correctamente.

0

Tuve un problema similar; Resultó que mi problema era no debido a variables de entorno.

Depuración GAE:

En primer lugar permítanme decir que si usted está teniendo problemas con GAE, me fuertemente recomiendo el lanzamiento mediante la CLI, google_appengine/dev_appserver.py. Hay un gran rastro de pila de la razón por la que GAE está fallando (en lugar de simplemente un enlace rojo en la GUI GAE Launcher) que lo orientará en la dirección correcta.

Ocultos personajes malos:

Al copiar el texto desde el tutorial de Google "hola mundo", hubo un personaje oculto invisible al comienzo de mi archivo YAML (lo encontré usando kdiff, una herramienta de diferencias) . Después de eliminar este personaje, mi aplicación se lanzó (y apareció como no roja en la GUI GAE Launcher).

variables de entorno:

En cuanto a su pregunta original, la única variable de entorno relevante he puesto es mi variable PATH, donde he anexado la carpeta de mi ejecutable pitón (en mi caso C: \ python27) para que pueda ejecutar archivos de Python sin especificar la ruta completa a Python. Permítame repetir, sin embargo, que no creo que esta sea la causa de su problema, pero puede confirmar esto más directamente con la CLI.

0

Como pghprogrammer4 above, resolví este problema eliminando los caracteres incorrectos en mis archivos. Eran invisibles en mi editor de texto habitual (texto sublime 2) pero los encontré con el editor hexadecimal de ese editor. Sabía qué buscar, porque noté un espacio al comienzo de mi aplicación Libro de visitas (algunos tutoriales). Así que miré la depuración en Chrome, y mostró el carácter Zero Width Space. El sitio Unicode tiene el valor hexadecimal de este carácter, así que busqué eso (no fue necesario buscar muy lejos, fueron los primeros tres bytes del archivo) y lo eliminé. Afortunadamente, Sublime Text 2 tiene un modo hexadecimal, pero puedes usar cualquier editor hexadecimal para encontrar y eliminar los caracteres incorrectos.

Estoy seguro de que esto se debe a un método muy particular de copiar y pegar desde el sitio tutorial de Google. No me pasó en el ejemplo de Hello World porque lo escribí a mano. Luego apareció en uno de mis archivos, causando que el CSS no se cargue. Después de eso, Google App Engine Launcher pensó que mi proyecto tenía archivos perdidos (apareciendo en rojo en el iniciador). Volví a una versión de trabajo (simplemente deshaciendo el editor de texto) y copié cada conjunto de nuevos comandos en el archivo del tutorial, con la esperanza de captar el fragmento de script que me estaba haciendo cargo. Pero cuando llegué al final todo estaba funcionando. SUCEDE que este error se presenta al copiar y pegar UN CUADRO ENTERO del texto del sitio tutorial de Google App Engine e insertarlo en uno de sus archivos. Sospecho que el personaje ZWSP existe en ese sitio como el primer personaje en los cuadros de códigos o algo así, pero es tarde y no voy a investigarlo más por ahora.

Supongo que deberías escribir los tutoriales, probablemente sea una mejor manera de aprender de todos modos.

2

Comparé el ejemplo de helloworld con la demostración del libro de visitas y descubrí que el elemento de la aplicación era la clave. Agregué la línea en la parte superior de la aplicación.yaml file "application: helloworld" y el ejemplo de helloworld comenzó a funcionar en Google App Engine (GAE). Tenga en cuenta que se supone que el elemento 'application' es opcional, tal como se define en la referencia app.yaml. Parece que es opcional si usa la línea de comando, y no es opcional si usa GAE.

+0

me ayudó pero, al principio, este encabezado causaba problemas durante la implementación. Así que eliminé el encabezado de la aplicación y, a través de gcloud, cloné el proyecto. – saikumarm

0

Me hicieron dos cambios juntos - 1. añade la línea en la parte superior de app.yaml archivo "aplicación: holamundo" 2. cambió la última línea de app.yaml "script: helloworld.app" a "escritura : helloworld.py "

mi GAE comenzó a funcionar. Sin embargo, para aislar el problema que 'deshice' ambos cambios, resulta que el segundo cambio - cambiando helloworld.app a helloworld.py hizo la magia