我希望使用本地网络服务器为用户运行一系列python脚本。出于各种不可避免的原因,python脚本必须在本地运行,而不是在服务器上运行。因此,我将使用HTML +浏览器作为用户界面,我很满意,用于前端。
因此,我一直在寻找能够执行python脚本的轻量级Web服务器,它位于机器的后台,理想情况下是Windows服务。安全性和可扩展性不是高优先级,因为它们都在内部在小型网络上运行。我应该将本机python webserver作为Windows服务运行(在这种情况下,如何)?或者将Apache安装到用户的计算机上并以CGI身份运行同样容易?由于这都是本地的,因此性能也不是问题。
或者我错过了一些明显的东西?
答案 0 :(得分:16)
不要浪费大量时间来创建Windows服务。
不要在Windows Apache上浪费大量时间。
只需创建一个响应HTTP请求的Python服务即可。
看看https://docs.python.org/2/library/basehttpserver.html
版本3 https://docs.python.org/3/library/http.server.html
Python提供了一个HTTP服务器,您可以使用服务器端方法扩展它。
看看http://docs.python.org/library/wsgiref.html
Python提供了一个WSGI参考实现,使您的服务器易于使用且符合标准。
另外http://fragments.turtlemeat.com/pythonwebserver.php
“我正在尝试避免让用户从命令提示符运行python内容。”
我没有看到点击网页与点击桌面图标有什么不同。
一旦拥有了Web服务器,启动基于Python的Web服务器就相对容易了。首先,构建服务器。稍后,您可以确保服务器启动。我们来看看。
您的用户无法使用随机浏览器打开您的本地页面。他们需要一个书签来启动“localhost:8000 / myspecialserverinsteadofthedestop /”这个书签可以是一个.BAT文件,(1)运行服务器,(2)使用正确的初始URL运行firefox。
您可以将服务器放在用户的开始菜单中。
您可以将您的Python程序设为Windows“服务”。
答案 1 :(得分:1)
最好的方法是使用命令提示符创建自己的本地服务器。
答案 2 :(得分:-1)
将本机python Web服务器作为Windows服务运行应该是不费脑子的。查看用于在python中编写Windows服务(win32api,ActiveState python)的文档以及子类化BaseHttpServer和SimpleHttpServer的文档。
BTW:我在stackoverflow上有类似的问题:How to stop BaseHTTPServer.serve_forever() in a BaseHTTPRequestHandler subclass?
基本上,你是BaseHTTPServer的子类(无论如何......)然后......但只是阅读了接受的答案 - 它让我走上了正确的轨道!