我一直 运行 与 web.py 有问题

I keep running into issues with web.py

好吧,实际上我事先遇到了这行代码的问题,但我意识到,多亏了这个网站的同事回答,我不得不从我的目录中删除我的 web.py 文件夹并重新安装一个更新后的版本。我决定使用开发者版本。

这样做后,我注意到我最初的 运行 代码有效,但在更新它并刷新浏览器后,我遇到了一个巨大的错误。我曾多次尝试修复此问题,并重新安装了 10 次。我进入 debugger.py 并没有找到真正的解决方案,因为每次我更新它时代码都拒绝 运行。

为了更好地说明我的错误,这是我的代码:

import web

urls = (
    '/(.*)', 'index'
)

app = web.application(urls, globals())
class index:
    def GET(self, name):
        print ("Hello", name, '. How are you today?')
if __name__=="__main__":
    app.run()

它 运行 没有错误,但是当打开我的页面或在初始 运行 后刷新它时,它给了我这个:

错误:

<class 'AttributeError'> at /
'NoneType' object has no attribute 'name'

现在请记住,我的第一个 运行 可以正常工作,如果我重新启动计算机或重新安装 web.py,每次都会第一次正常工作。但是在最初的运行之后,它只是在网页上给我上面的错误。

只有当您对脚本进行了一些更改时才会发生这种情况。您可以停止脚本 (ctrl+c) 并重新启动它,一切都应该正常。

但我找到了解决方法。 在脚本顶部(导入后)写:

__name__ = '<your main file name>'  # main2 for main2.py in my case

在底部替换

if __name__ == "__main__":

if __spec__ is None:

所以完整的脚本 (main2.py) 应该如下所示:

import web
__name__ = 'main2'


urls = ("/.*", "hello")
app = web.application(urls, globals())

class hello:
    def GET(self):
        return 'Hello, world1!'

if __spec__ is None:
    app.run()