python - 将 Python 脚本部署到 Windows 和 Linux

标签 python linux windows deployment

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

因为我在服务器上使用了 server_forever(),所以我只能从命令行运行脚本,但这会使 python 窗口保持打开状态。如果我注销机器,这个过程自然会停止。那么部署需要在用户登录或退出机器时保持运行的 python 脚本的最佳方法是什么。

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

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

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

最佳答案

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

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

  • Windows:Windows 调度程序或特定的调度工具
  • Linux:Cron

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

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

使用 Django 等应用服务器可以产生更多的功能

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

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

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

关于python - 将 Python 脚本部署到 Windows 和 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17677744/

相关文章:

windows - 如何在 Windows 的 linux 子系统上安装 numpy?

python - 在填充函数中编辑字典(迭代 for 函数)以自动填充 View ,例如

c - 当我只调用一次 fork 时,为什么会得到多个 SIGCHLD?

windows - 是否可以通过编程方式禁用 Windows 上的 Caps Lock 键?

c# - 如何以编程方式访问操作系统中最常用的程序和程序的最新文件?

linux - SED 删除带有扩展名的单词

Python正则表达式单词、ip和端口组合匹配

python - 使用 b4 抓取时排除隐藏标签

python - 如何使用Python中的or-tools解决累积旅行商问题?

mysql - 如何在linux操作系统下升级xampp中的mysql(innodb)版本