2011-06-20 13 views
6

utilizo web.py escribir holamundo sitio pequeño, pero cuando corro python code.py me sale un mensaje de error:Web.py - AttributeError: 'módulo' objeto no tiene atributo de 'aplicación'

Traceback (most recent call last): File "E:\Python25\webpy\web\mysite.py", line 1, in <module> 
    import web File "E:\Python25\webpy\web\web.py", line 4, in <module> 
    app = web.application(urls, globals()) AttributeError: 'module' object has no attribute 'application' 

Aquí es mi código (pasta de tutoriales de web.py):

import web 

urls = ('/','Index', 
) 

class Index: 
    def GET(self): 
    return "Hello,world!" 

app=web.application(urls,globals()) 

if __name__=="__main__": 
    app.run(

PD: La versión web.py es de 0.35.

Respuesta

9

Te encuentras con colisiones de nombres. Usted nombró su paquete web, y está tratando de importar un módulo web.

Supongo que está en un paquete?

\webpy\web\mysite.py

Si es así cuando haces import web está importando su el paquete no web.py. real Renombrarlo o reordenar su ruta de acceso de Python.

+0

quieres decir que mi módulo web estaba en conflicto con Web.py?Pero no puedo encontrar mi web.py :( – Xhinking

+0

¿Tienes un \ _ \ _ init \ _ \ _. Py en webpy \ web \? – Nix

+0

Sí, tengo un __init__.py en webpy \ web \ – Xhinking

1

Esto funcionó en mi caso: en el archivo app.yaml, reemplazar

- url: /.* 
    script: test.application 

para esto,

- url: /.* 
    script: test.app 

Esto resuelve el conflicto de nombres.

1

por recomendación de un usuario anterior, he vuelto mi comentario en una respuesta para mejorar su visibilidad:

Si usted comenzó llamando a su archivo web.py, en lugar de code.py como en el tutorial de Python, éstos también debería tener un archivo de web.pyc "código de bytes" creado en la carpeta donde está codificando. Después de descubrir la colisión del nombre, asegúrese de eliminar también el archivo web.pyc.

Cuestiones relacionadas