0

我有一个需要在 Linux 和 Windows 环境中运行的 python 服务器,我的问题是关于部署的。部署解决方案而不是仅仅双击文件并运行它的最佳方法是什么?

由于我在服务器上使用 server_forever(),我可以从命令行运行脚本,但这会使 python 窗口保持打开状态。如果我注销机器,该过程自然会停止。那么,如果用户登录或离开机器,部署需要继续运行的 python 脚本的最佳方法是什么。

由于我将使用多种环境,Linux 和 Windows,您能否具体说明您在说什么操作系统?

对于 Windows,我正在考虑使用 Windows 调度程序运行脚本“启动时”。但我想看看是否有人有更好的选择。对于linux,我真的不知道要创建什么。我假设一个 CRON 工作?

部署确实指的是编码,因此在多处理作业管理器上使用 serve_forever() 会在执行时保持 python 窗口打开。有没有办法通过代码隐藏这个窗口?你会推荐使用像 py2exe 这样的转换工具吗?

4

1 回答 1

1

这是整个图书馆的主题,所以我在这里只做一个介绍:-) 你基本上可以直接启动脚本,然后有多个选项以它们在后台运行的方式来执行此操作。

如果您有某些需要定期运行的功能,您可以通过安排它来做到这一点:

  • Windows:Windows 调度程序或特定的调度工具
  • Linux:克罗恩

如果您的问题是您想在 SSH 进入 Linux 时启动一个脚本而不关闭它,您需要查看“screen”或“tmux”工具。

如果您想让它自动启动,这可以通过使用“启动时”来完成,正如您所指出的,Linux 具有类似的功能,但首选和更强大的方法是设置与操作系统更好集成的服务.

使用 Django 之类的应用程序服务器可以产生更多功能

Tomcat(见评论)是一种选择,但绝对不是标准的;您将很难从运行 Python 的 Tomcat 人员或在 Tomcat 上运行他们的东西的 Python 人员那里找到支持。话虽如此,我想您可以启用 CGI 并让它使用您的脚本运行 Python 命令。

然而,我强烈建议您查看可能适用于您的特定用例的不同 Python 选项,而不是仅仅启动 Python 脚本。从像Flask这样的轻量级 Web 解决方案,到像Twisted这样的多功能网络引擎,再到像Django这样的成熟 Web 框架。

他们都有经过深思熟虑的部署解决方案可用。查找WSGI以获取更多背景信息。

于 2013-07-16T13:44:04.200 回答