【问题标题】:Web.py - AttributeError: 'module' object has no attribute 'application'Web.py - AttributeError:“模块”对象没有属性“应用程序”
【发布时间】:2011-09-18 17:44:22
【问题描述】:

我使用 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(

P.S:web.py 版本为 0.35。

【问题讨论】:

    标签: python google-app-engine web.py


    【解决方案1】:

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

    我假设这是在一个包中?

    \webpy\web\mysite.py

    如果是这样,当您执行 import web 时,您正在导入 您的 包而不是实际的 web.py。重命名它,或者重新排列你的 pythonpath。

    【讨论】:

    • 你的意思是我的 web 模块与 Web.py 冲突?但是我找不到我的 web.py:(
    • 你在 webpy\web\ 中有 __init__.py 吗?
    • 是的,我有一个 init.py 在 webpy\web\
    • 见上文,它没有导入 real web.py
    • 如果您首先调用您的文件 web.py,而不是像 Python 教程中那样调用 code.py,您可能还会在您所在的文件夹中创建一个 web.pyc“字节码”文件正在编码。发现名称冲突后,请确保您还删除了 web.pyc 文件。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      - url: /.*
        script: test.application
      

      为此,

      - url: /.*
        script: test.app
      

      这解决了名称冲突。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2010-11-18
          • 2018-08-28
          相关资源
          最近更新 更多