将Python脚本部署到Windows和Linux

时间:2013-07-16 13:23:35

标签: python linux windows deployment

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

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

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

对于Windows,我正在考虑使用Windows调度程序运行脚本'At Startup'。但我想知道是否有人有更好的选择。对于linux,我真的不知道要创建什么。我正在做CRON工作吗?

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

1 个答案:

答案 0 :(得分:1)

这是整本图书馆的主题,所以我将在这里给出一个介绍:-) 您基本上可以直接启动脚本,然后有多个选项,以便它们在后台继续运行。

如果您有某些功能需要定期运行,您可以通过安排它来执行此操作:

  • Windows:Windows计划程序或特定的计划工具
  • Linux:Cron

如果您的问题是您希望在SSH进入Linux时没有关闭脚本而启动脚本,那么您需要查看“屏幕”或“tmux”工具。

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

使用像Django这样的应用程序服务器可以产生更多功能

Tomcat(请参阅注释)是一个选项,但绝对不是标准选项;你很难找到运行Python的Tomcat人员或者在Tomcat上运行他们的东西的Python人员。话虽这么说,我想你可以启用CGI并让它用你的脚本运行Python命令。

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

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