【问题标题】:Cherrypy returning NotFound: (404, "The path '/' was not found.")Cherrypy 返回 NotFound:(404,“找不到路径 '/'。”)
【发布时间】:2026-01-12 10:00:01
【问题描述】:

我是cherrypy的新手,正在尝试安装一个简单的hello world应用程序,但它一直返回“NotFound:(404,“找不到路径'/'。”)”,但我已经定义了它。

这就是我得到的,

__init__.py

import cherrypy
from HomeNetMain import HomeNetMain

cherrypy.config.update("global.cfg")
#I have tried "" for the script name parm but that doesn't work
cherrypy.tree.mount(HomeNetMain,"/","main.cfg") 
cherrypy.engine.start()
cherrypy.quickstart()

在另一个文件中

import cherrypy

class HomeNetMain:

    @cherrypy.expose
    def index(self):
       return "Hello World"

我尝试使用装饰器和 index.exposed=True 均无济于事(子问题是cherrypy 装饰器或 index.exposed 的首选方法是什么)

global.cfg

[global]
server.socket_host: "127.0.0.1"
server.socket_port: 9080
log.screen: True
log.error_file: "/tmp/cherrypy.error"
log.access_file: "/tmp/cherrypy.access"

main.cfg

[/]
log.screen: True
log.error_file: "/tmp/homenet.error"
log.access_file: "/tmp/homenet.access"

感谢您的帮助,在此先感谢。

编辑

这是完整的堆栈跟踪

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/local/lib/python2.7/dist-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/lib/encoding.py", line 188, in __call__
self.body = self.oldhandler(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/_cperror.py", line 386, in __call__
raise self
NotFound: (404, "The path '/' was not found.")

【问题讨论】:

    标签: python cherrypy


    【解决方案1】:

    原来我不应该使用cherrypy.quickstart() 我将代码更改为以下代码,它运行良好

    cherrypy.engine.start()
    cherrypy.engine.block()
    

    【讨论】:

    • 我目前正在使用这个cherrypy.quickstart(Control(), config=tutconf)如何更改为上述提及?
    【解决方案2】:

    HomeNetMain 正在安装,而不是实例。由于 index 不是类方法,因此会抛出 TypeError,框架将其处理为 404。

    cherrypy.tree.mount(HomeNetMain(), "/", "main.cfg")
    

    【讨论】:

    • 感谢您的更新,但更改后似乎不是问题我仍然得到 404 我会将完整的堆栈跟踪添加到问题中