Python: 部署到生产环境
如何在几分钟内将您的 Python 代码部署到生产环境
👋 欢迎来到 Stackhero 文档!
Stackhero 提供现成的 Python 云 解决方案,具有众多优势,包括:
- 通过简单的
git push在几秒钟内 部署您的应用程序。- 使用您自己的域名,并享受 HTTPS 证书的自动配置以增强安全性。
- 享受 自动备份、一键更新,以及简单、透明和可预测的定价,让您高枕无忧。
- 通过私有和专用的 VM获得最佳的性能和强大的安全性。
节省时间并简化您的生活:只需 5 分钟即可试用 Stackhero 的 Python 云托管 解决方案!
Stackhero 的 Python 云托管服务 为您提供了一种简单可靠的方式,仅需几分钟即可将您的 Python 项目部署到生产环境。凭借直观的配置和强大的功能,您可以专注于应用开发,基础设施的细节则由 Stackhero 全权负责。
主要功能包括:
- 通过简单的
git push实现部署 - 支持自定义域名并自动管理 TLS 证书(HTTPS)
- 独享、私有的虚拟机,提升安全性与数据保密性
- 支持 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 公钥”区域粘贴您的 SSH 公钥。
Python 服务配置示例
提示:您也可以全局设置 SSH 公钥,这样新创建的所有服务都会自动包含该公钥。方法是在 Stackhero 控制台点击右上角的头像,进入“个人资料”,然后添加您的 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 远程命令示例
为 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 分支、标签或提交部署,管理多环境(如预发布和生产环境),以及环境变量的使用等主题。
请记住,如遇任何问题,随时可以查阅“故障排查”文档,帮助您快速恢复进度。