18

我正在寻找使用本地网络服务器为用户运行一系列 python 脚本。由于各种不可避免的原因,python 脚本必须在本地运行,而不是在服务器上。因此,我将使用 HTML+浏览器作为前端的 UI,我对此很满意。

因此,我一直在寻找可以执行 python 脚本的轻量级 Web 服务器,它位于机器的后台,最好是作为 Windows 服务。安全性和可扩展性不是高优先级,因为它们都是在小型网络内部运行的。

我应该将本机 python 网络服务器作为 Windows 服务运行(在这种情况下,如何)?还是将 Apache 安装到用户的机器上并像 CGI 一样运行?由于这都是本地的,因此性能也不是问题。

还是我错过了一些明显的东西?

4

3 回答 3

16

不要浪费大量时间创建 Windows 服务。

不要在 Windows Apache 上浪费大量时间。

只需创建一个响应 HTTP 请求的 Python 服务。

查看https://docs.python.org/2/library/basehttpserver.html
https://docs.python.org/3/library/http.server.html版本 3
Python 提供了一个可以扩展的 HTTP 服务器使用您的服务器端方法。

查看http://docs.python.org/library/wsgiref.html
Python 提供了一个 WSGI 参考实现,使您的服务器变得简单且符合标准。

还有http://fragments.turtlemeat.com/pythonwebserver.php


“我试图避免让用户从命令提示符运行 python 东西。”

我看不出单击网页与单击桌面图标有何不同。

一旦您拥有了 Web 服务器,就可以相对容易地启动基于 Python 的 Web 服务器。首先,构建服务器。稍后,您可以确保服务器启动。让我们看看一些方法。

  1. 您的用户无法使用随机浏览器打开您的本地页面。他们需要一个书签来启动“localhost:8000/myspecialserverinsteadofthedestop/”该书签可以是一个 .BAT 文件,它 (1) 运行服务器,(2) 使用正确的初始 URL 运行 firefox。

  2. 您可以将服务器放在用户的开始-此菜单中。

  3. 您可以使您的 Python 程序成为 Windows“服务”。

于 2009-05-18T10:19:46.500 回答
2

最好的方法是使用命令提示符创建自己的本地服务器。

  1. 新建一个文件夹说项目
  2. 在项目中创建一个新文件夹并将其命名为“cgi-bin”(不带引号)
  3. 将 .py 文件粘贴到 cgi-bin 文件夹中
  4. 打开 cmd 并切换到要从中运行服务器的目录并键入“python -m CGIHTTPServer”(不带引号)
  5. 最小化 cmd 窗口并打开浏览器并输入“localhost:8000/cgi-bin/yourpythonfilename.py”(不带引号)。
于 2014-03-10T20:09:19.250 回答
-1

将本机 python 网络服务器作为 Windows 服务运行应该是轻而易举的事。查看在 python 中编写 windows 服务(win32api、ActiveState python)的文档以及子类化 BaseHttpServer 和 SimpleHttpServer 的文档。

顺便说一句:我在 stackoverflow 上有一个类似的问题:如何在 BaseHTTPRequestHandler 子类中停止 BaseHTTPServer.serve_forever()?

基本上,您将 BaseHTTPServer 子类化(无论如何您都必须......)然后......但只需阅读接受的答案 - 它让我走上了正确的轨道!

于 2009-05-18T10:20:45.017 回答