Python: 部署到生产环境

如何在几分钟内将您的 Python 代码部署到生产环境

👋 欢迎来到 Stackhero 文档!

Stackhero 提供现成的 Python 云 解决方案,具有众多优势,包括:

  • 通过简单的 git push 在几秒钟内 部署您的应用程序。
  • 使用您自己的域名,并享受 HTTPS 证书的自动配置以增强安全性。
  • 享受 自动备份一键更新,以及简单、透明和可预测的定价带来的安心。
  • 通过私有和专用的 VM获得最佳的性能和强大的安全性

节省时间简化您的生活:尝试 Stackhero 的 Python 云托管 解决方案只需 5 分钟

Stackhero 的 Python 云托管服务 为您提供了一种简单可靠的方式,只需几分钟即可将您的 Python 项目部署到生产环境。凭借直观的设置流程和强大的功能,您可以专注于开发应用程序,基础设施的细节则由 Stackhero 全权负责。

主要功能包括:

  • 通过简单的 git push 进行部署
  • 支持自定义域名并自动管理 TLS 证书(HTTPS)
  • 专属私有虚拟机(VM),提升安全性与数据保密性
  • 支持 HTTP/2、TLS 1.3(HTTPS)、WebSockets、GZIP & Brotli 压缩、ETag 以及 TCP/UDP 端口访问

在开始使用 Stackhero 之前,请确保您的电脑已安装 Git。

如果您的开发环境尚未搭建,或者您希望节省配置时间,可以尝试 Stackhero 的 Code-Hero

Code-Hero 是一款易用、即开即用的开发平台,可直接在您的浏览器中运行,无论是电脑、平板还是手机都能使用。基于 VSCode 分支,Code-Hero 预装了所有必要的开发工具,让您无需额外配置即可立即开始编码。

在浏览器中直接运行的 Code-Hero 实例示例在浏览器中直接运行的 Code-Hero 实例示例

将您的 Python 应用部署到 Stackhero 设计得非常简单流畅。您可以按照以下步骤操作:

  1. 在 Stackhero 上创建一个 Python 服务。
  2. 将您的 SSH 公钥添加到 Python 服务的配置中。
  3. 在开发平台上配置 git push 命令。
  4. 为项目添加 Makefile 文件。
  5. 将代码部署到生产环境。

如果您在部署过程中遇到问题,建议优先查阅“故障排查”文档,通常可以快速找到解决方案,避免不必要的困扰。

如果您还没有启动 Stackhero for Python 服务,可以在 Stackhero 控制台中创建,通常只需几分钟即可完成。

当您的 Python 服务启动后,您需要将 SSH 公钥添加到服务配置中。您可以通过以下命令查看您的公钥:

cat ~/.ssh/id_*.pub

还没有 SSH 密钥?

您可以通过以下命令生成:

ssh-keygen -t ed25519

将公钥添加到 Python 服务的步骤如下:

  1. 打开 Stackhero 控制台,选择您的 Python 服务。
  2. 点击“配置”按钮。
  3. 在“SSH public keys”区域粘贴您的 SSH 公钥。

Python 服务配置示例Python 服务配置示例

小贴士:您也可以全局设置 SSH 公钥,这样新创建的所有服务都会自动包含该公钥。只需在 Stackhero 控制台点击右上角的头像,进入“Your profile”,添加您的 SSH 公钥即可。

Stackhero 通过 Git CLI 及熟悉的 git push 命令简化了部署流程。无需安装额外软件,只需配置一次 Git 远程仓库即可。

您可以在 Stackhero 控制台服务主页找到您的 git remote command,类似如下:

git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git

Stackhero 控制台上的 Python Git remote 命令示例Stackhero 控制台上的 Python Git remote 命令示例

为了让 Stackhero 知道如何运行您的应用,您需要在项目根目录下添加一个 Makefile 文件。

如果您不熟悉 Makefile 文件和 make 命令,也不用担心,按照以下说明操作即可。

在项目根目录下创建一个名为 Makefile 的文件,内容如下:

run:
	gunicorn app:app -b 0.0.0.0:8080 --error-logfile -

关于此 Makefile,有几点需要注意:

  1. 必须包含 run 规则,因为 Stackhero 会自动执行该规则,请勿更名。
  2. gunicorn app:app -b 0.0.0.0:8080 --error-logfile - 只是示例命令,请根据您的应用实际需求进行调整。
  3. gunicorn 命令前必须使用 Tab 缩进。如果出现 "*** missing separator" 错误,说明缺少了 Tab。

在本例中,Gunicorn 用于启动您的应用(请确保其已在 requirements.txt 中列出)。参数 -b 0.0.0.0:8080 表示监听所有接口的 8080 端口。如果您选择其他端口,请同步更新 Stackhero 控制台中的 Python 服务配置。app:app 指的是 app.py 文件中的 app 对象。

一切准备就绪后,您可以在项目目录下通过以下命令将代码推送到 Stackhero:

git push stackhero main

首次运行该命令时,系统会提示您确认 SSH 密钥指纹。请按提示输入 "yes"。几秒钟后,您的应用就会上线。

使用 git push 命令将 Python 代码部署到 Stackhero 的示例使用 git push 命令将 Python 代码部署到 Stackhero 的示例

要访问已部署的应用,请前往 Stackhero 控制台中“website”对应的 URL(通常格式为 https://<XXXXXX>.stackhero-network.com)。

就是这样,您的应用现在已经在生产环境上线。

部署过程中遇到问题?

故障排查 部分收录了丰富的解决方案,助您快速定位并解决问题。

希望本指南能帮助您顺利、清晰地将 Python 代码部署到 Stackhero 生产环境。借助这些基础,您可以自信地将项目上线。

如果您希望进一步探索,"高级部署用法" 文档涵盖了从不同 git 分支、标签或提交部署,管理多环境(如 staging 和 production),以及环境变量的使用等主题。

请记住,如遇任何问题,"故障排查" 文档始终可供您快速查找解决方案。