更改Cherrypy端口并重新启动Web服务器

wil*_*oup 9 python port webserver cherrypy

有没有办法在python中更改cherrypy正在使用的端口并强制重新启动Web服务器(而不是apache,cherrypy)?

Ret*_*old 17

看看cherrypy.process.servers.你可以尝试这样的事情:

import cherrypy
cherrypy.config.update({'server.socket_port': 8099})
cherrypy.engine.restart()
Run Code Online (Sandbox Code Playgroud)


Eri*_*ith 6

如果你不想替换整个过程(这是什么cherrypy.engine.restart()),你可以这样做:

import cherrypy
cherrypy.engine.stop()
cherrypy.server.httpserver = None
cherrypy.config.update({'server.socket_port': 8099})
cherrypy.engine.start()
Run Code Online (Sandbox Code Playgroud)

需要将httpserver设置为None,否则cherrypy.engine.start()调用将只重用其已有的主机/端口,而不是选择更改的配置.不过,我不确定这是否不恰当地利用了实现细节.