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 实例示例
部署到 Stackhero 的步骤
将您的 Python 应用部署到 Stackhero 设计得非常简单流畅。您可以按照以下步骤操作:
- 在 Stackhero 上创建一个 Python 服务。
- 将您的 SSH 公钥添加到 Python 服务的配置中。
- 在开发平台上配置
git push命令。 - 为项目添加 Makefile 文件。
- 将代码部署到生产环境。
如果您在部署过程中遇到问题,建议优先查阅“故障排查”文档,通常可以快速找到解决方案,避免不必要的困扰。
配置您的 "Stackhero for Python" 服务
如果您还没有启动 Stackhero for Python 服务,可以在 Stackhero 控制台中创建,通常只需几分钟即可完成。
当您的 Python 服务启动后,您需要将 SSH 公钥添加到服务配置中。您可以通过以下命令查看您的公钥:
cat ~/.ssh/id_*.pub
还没有 SSH 密钥?
您可以通过以下命令生成:
ssh-keygen -t ed25519
将公钥添加到 Python 服务的步骤如下:
- 打开 Stackhero 控制台,选择您的 Python 服务。
- 点击“配置”按钮。
- 在“SSH public keys”区域粘贴您的 SSH 公钥。
Python 服务配置示例
小贴士:您也可以全局设置 SSH 公钥,这样新创建的所有服务都会自动包含该公钥。只需在 Stackhero 控制台点击右上角的头像,进入“Your profile”,添加您的 SSH 公钥即可。
配置部署用的 git push 命令
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 部署创建 Makefile
为了让 Stackhero 知道如何运行您的应用,您需要在项目根目录下添加一个 Makefile 文件。
如果您不熟悉
Makefile文件和make命令,也不用担心,按照以下说明操作即可。
在项目根目录下创建一个名为 Makefile 的文件,内容如下:
run:
gunicorn app:app -b 0.0.0.0:8080 --error-logfile -
关于此 Makefile,有几点需要注意:
- 必须包含
run规则,因为 Stackhero 会自动执行该规则,请勿更名。 gunicorn app:app -b 0.0.0.0:8080 --error-logfile -只是示例命令,请根据您的应用实际需求进行调整。- gunicorn 命令前必须使用 Tab 缩进。如果出现 "*** missing separator" 错误,说明缺少了 Tab。
在本例中,Gunicorn 用于启动您的应用(请确保其已在 requirements.txt 中列出)。参数 -b 0.0.0.0:8080 表示监听所有接口的 8080 端口。如果您选择其他端口,请同步更新 Stackhero 控制台中的 Python 服务配置。app:app 指的是 app.py 文件中的 app 对象。
部署您的 Python 应用
一切准备就绪后,您可以在项目目录下通过以下命令将代码推送到 Stackhero:
git push stackhero main
首次运行该命令时,系统会提示您确认 SSH 密钥指纹。请按提示输入 "yes"。几秒钟后,您的应用就会上线。
使用 git push 命令将 Python 代码部署到 Stackhero 的示例
要访问已部署的应用,请前往 Stackhero 控制台中“website”对应的 URL(通常格式为 https://<XXXXXX>.stackhero-network.com)。
就是这样,您的应用现在已经在生产环境上线。
部署过程中遇到问题?
故障排查 部分收录了丰富的解决方案,助您快速定位并解决问题。
总结
希望本指南能帮助您顺利、清晰地将 Python 代码部署到 Stackhero 生产环境。借助这些基础,您可以自信地将项目上线。
如果您希望进一步探索,"高级部署用法" 文档涵盖了从不同 git 分支、标签或提交部署,管理多环境(如 staging 和 production),以及环境变量的使用等主题。
请记住,如遇任何问题,"故障排查" 文档始终可供您快速查找解决方案。