Web.py - AttributeError: '模块'对象没有'application'属性
我用 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。