6

我使用 web.py 编写小型 helloworld 站点,但运行时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(

PS:web.py 版本为 0.35。

4

4 回答 4

9

您遇到了名称冲突。您将包命名为 web,并尝试导入模块 web。

我假设这是在一个包中?

\webpy\web\mysite.py

如果是这样,当你import web导入你的包而不是实际的 web.py 时。重命名它,或重新排序你的 pythonpath。

于 2011-06-20T14:06:35.597 回答
1

这在我的情况下有效:在app.yaml文件中,替换

- url: /.*
  script: test.application

为了这,

- url: /.*
  script: test.app

这解决了名称冲突。

于 2014-05-01T20:31:32.363 回答
1

根据上述用户的建议,我已将我的评论转化为答案以提高其知名度:

如果您首先调用您的文件web.py,而不是code.py像 Python 教程中那样,您可能还会web.pyc在您编码的文件夹中创建一个“字节码”文件。发现名称冲突后,请确保您也删除了该web.pyc文件。

于 2016-08-31T18:34:25.553 回答
0

检查当前目录是否有 web.py 或 web.pyc 文件

于 2018-12-27T09:14:07.240 回答