1. 程式人生 > >Python3.7執行web.py測試時出現RuntimeError: generator raised StopIteration異常

Python3.7執行web.py測試時出現RuntimeError: generator raised StopIteration異常

剛開始學習python,在執行web.py首頁測試程式碼的時候出現異常。

程式碼如下:

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

class hello:        
    def GET(self, name):
        if not name: 
            name = 'World'
        return 'Hello, ' + name + '!'

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

出現的異常如下:

Traceback (most recent call last):
  File "C:\Users\HHHHH\AppData\Local\Programs\Python\Python37-32\lib\site-packages\web\utils.py", line 526, in take
    yield next(seq)
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:\workspace\HelloPython\Helloworld.py", line 7, in <module>
    app = web.application(urls, globals())
  File "C:\Users\HHHHH\AppData\Local\Programs\Python\Python37-32\lib\site-packages\web\application.py", line 62, in __init__
    self.init_mapping(mapping)
  File "C:\Users\HHHHH\AppData\Local\Programs\Python\Python37-32\lib\site-packages\web\application.py", line 130, in init_mapping
    self.mapping = list(utils.group(mapping, 2))
  File "C:\Users\HHHHH\AppData\Local\Programs\Python\Python37-32\lib\site-packages\web\utils.py", line 531, in group
    x = list(take(seq, size))
RuntimeError: generator raised StopIteration

 

根據異常提示以找到相應的程式碼(...utils.py", line 531, in group),如下:

此處呼叫524行take方法,根據官網資料修改如下(注意縮排):

修改完成後重啟,成功:


END