IIS 托管 python CherryPy API
IIS to host python CherryPy API
我正在寻找 link IIS 和 Cherrypy 的解决方案。
我想要对 Cherrypy 执行此操作的具体解释,因为所有其他内容都适用于其他应用程序,如 flask 和 django。
我可以通过
调用函数 getHeight 和 getWidth
使用调用 http://0.0.0.0:8080/getHeight
import cherrypy
import tileProvider
import time
class MyWebService(object):
provider = TileProvider('myPicture.JPEG')
@cherrypy.expose
def getHeight(self):
return str(MyWebService.provider.getHeight())
@cherrypy.expose
def getWidth(self):
return str(MyWebService.provider.getWidth())
if __name__ == '__main__':
IPv4 = socket.gethostbyname(socket.gethostname())
config = {'server.socket_host': IPv4,
'server.socket_port': 8080}
cherrypy.config.update(config)
cherrypy.quickstart(MyWebService())
那么现在如何创建相同的东西,除了从 IIS 托管而不是 CherryPy 的内置 WebServer。
有没有人有任何有用的指示或 link 供我参考?
要在 iis 中配置 Cherrypy 应用程序,您可以按照以下步骤操作:
1.Run 下面的命令安装 cherrypy
pip install cherrypy
2.install wfastcgi 并启用它:
pip install wfastcgi
fastcgi-enable
3.enable iis cgi 功能。
4.add iis 中的站点以及您的 cherrypy 应用程序路径
5.select 您的站点名称,然后双击中间窗格中 iis 的处理程序映射功能。
6.in 处理程序映射 select 从操作面板添加模块映射。
可执行路径值:
C:\Python37-32\python.exe|C:\Python37-32\Lib\site-packages\wfastcgi.py
C:\Python37-32 是您的 python 路径。
7.Now 返回 select 服务器名称和 select 中间窗格中的快速 CGI 设置。
双击它,然后单击环境变量集合的“...”以启动 EnvironmentVariables 集合编辑器:
8.Set PYTHONPATH 变量(你的 cherrypy 应用文件夹路径):
9.And WSGI_HANDLER(我的应用名为 app.py,因此值为 app.wsgiapp — 如果您的应用名为 site.py,它将是 site. app.wsgiapp 或类似的):
配置更改后,您可能需要重新启动服务器和网站。
确保您 运行 具有管理员用户之一的应用程序池身份,或者如果其 运行 应用程序池身份,则确保您提供对 C:\ cherryapp 和 python 文件夹 C:\Python37-32 或分配 iis_iusrs 和 iusr 权限。
app.py:
import cherrypy
class Root:
@cherrypy.expose
def index(self):
return 'Hello CherryPy!'
@cherrypy.expose
def greet(self, name):
return 'Greetings, {0}'.format(name)
url_prefix = '/cherrypy'
cherrypy.config.update({'engine.autoreload.on': False})
cherrypy.server.unsubscribe()
cherrypy.engine.start()
wsgiapp = cherrypy.tree.mount(Root(), url_prefix)
我正在寻找 link IIS 和 Cherrypy 的解决方案。
我想要对 Cherrypy 执行此操作的具体解释,因为所有其他内容都适用于其他应用程序,如 flask 和 django。
我可以通过
调用函数 getHeight 和 getWidth使用调用 http://0.0.0.0:8080/getHeight
import cherrypy
import tileProvider
import time
class MyWebService(object):
provider = TileProvider('myPicture.JPEG')
@cherrypy.expose
def getHeight(self):
return str(MyWebService.provider.getHeight())
@cherrypy.expose
def getWidth(self):
return str(MyWebService.provider.getWidth())
if __name__ == '__main__':
IPv4 = socket.gethostbyname(socket.gethostname())
config = {'server.socket_host': IPv4,
'server.socket_port': 8080}
cherrypy.config.update(config)
cherrypy.quickstart(MyWebService())
那么现在如何创建相同的东西,除了从 IIS 托管而不是 CherryPy 的内置 WebServer。
有没有人有任何有用的指示或 link 供我参考?
要在 iis 中配置 Cherrypy 应用程序,您可以按照以下步骤操作:
1.Run 下面的命令安装 cherrypy
pip install cherrypy
2.install wfastcgi 并启用它:
pip install wfastcgi
fastcgi-enable
3.enable iis cgi 功能。
4.add iis 中的站点以及您的 cherrypy 应用程序路径
5.select 您的站点名称,然后双击中间窗格中 iis 的处理程序映射功能。
6.in 处理程序映射 select 从操作面板添加模块映射。
可执行路径值: C:\Python37-32\python.exe|C:\Python37-32\Lib\site-packages\wfastcgi.py
C:\Python37-32 是您的 python 路径。
7.Now 返回 select 服务器名称和 select 中间窗格中的快速 CGI 设置。 双击它,然后单击环境变量集合的“...”以启动 EnvironmentVariables 集合编辑器:
8.Set PYTHONPATH 变量(你的 cherrypy 应用文件夹路径):
9.And WSGI_HANDLER(我的应用名为 app.py,因此值为 app.wsgiapp — 如果您的应用名为 site.py,它将是 site. app.wsgiapp 或类似的):
配置更改后,您可能需要重新启动服务器和网站。
确保您 运行 具有管理员用户之一的应用程序池身份,或者如果其 运行 应用程序池身份,则确保您提供对 C:\ cherryapp 和 python 文件夹 C:\Python37-32 或分配 iis_iusrs 和 iusr 权限。
app.py:
import cherrypy
class Root:
@cherrypy.expose
def index(self):
return 'Hello CherryPy!'
@cherrypy.expose
def greet(self, name):
return 'Greetings, {0}'.format(name)
url_prefix = '/cherrypy'
cherrypy.config.update({'engine.autoreload.on': False})
cherrypy.server.unsubscribe()
cherrypy.engine.start()
wsgiapp = cherrypy.tree.mount(Root(), url_prefix)