Web.py - AttributeError: '模块'对象没有'application'属性

6 投票
4 回答
14041 浏览
提问于 2025-04-16 19:54

我用 web.py 写了一个简单的 hello world 网站,但当我运行 python code.py 时,出现了一个错误信息:

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'

这是我的代码(从 web.py 的教程中复制过来的):

import web

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

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

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

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

附注:web.py 的版本是 0.35。

4 个回答

1

根据上面一位用户的建议,我把我的评论变成了一个回答,以便让更多人看到:

如果你一开始把你的文件命名为 web.py,而不是像Python教程中那样命名为 code.py,那么在你编写代码的文件夹里,可能会生成一个 web.pyc 的“字节码”文件。在发现文件名冲突后,记得也要删除这个 web.pyc 文件。

1

在我的情况下,这个方法有效:在app.yaml文件中,把

- url: /.*
  script: test.application

换成

- url: /.*
  script: test.app

这样可以解决名字冲突的问题。

9

你遇到了名字冲突的问题。你把你的包命名为“web”,而你又想导入一个叫“web”的模块。

我假设这是在一个包里?

\webpy\web\mysite.py

如果是这样,当你执行 import web 时,你导入的是你自己的包,而不是实际的 web.py。你可以改个名字,或者调整一下你的 pythonpath。

撰写回答