Python
Python 语言识别策略
平台默认会根据源码根目录是否有 requirements.txt
文件来识别为 Python 项目.
平台编译运行机制
- 预编译处理会探测是否定义了启动命令配置文件 Procfile,如果未定义会生成默认 Flask/Django 启动配置文件;
- 预编译处理完成后,会根据语言类型选择 Python 的 buildpack 去编译项目.在编译过程中会安装定义的 Python 版本以及相关 Python 依赖;
- 编译完成后会检查是否在平台设置了 Procfile 参数,若配置了会重写启动命令配置文件 Procfile.
Python 项目源码规范
在此步骤中,你需要提供一个可用的 Python 源码程序用来部署在 Rainbond 平台上,此应用程序至少需要满足如下条件:
- 本地可以正常运行部署的 Python 程序
- 项目可以托管到 git 仓库
- 项目根目录下必须存在
requirements.txt
,用来管理 Python 项目的依赖,也是 Rainbond 识别为 Python 语言的必要条件 - 项目根目录下需要定义
Procfile
,用来定义程序启动方式 - 项目根目录下存在
runtime.txt
,用来定义当前项目的 Python 使用版本
requirements.txt 规范
若程序没有依赖关系,可使 requirements.txt
为空文件。
若无 requirements.txt
可用如下命令生成
pip freeze > requirements.txt
Procfile 规范
如果项目未定义 Procfile 文件,平台默认会生成默认 Procfile 来运行 War 包。
web: gunicorn app:app --log-file - --access-logfile - --error-logfile -
上述是默认 Procfile,如果需要扩展更多启动参数,可以自定义 Procfile。
web:
和gunicorn
之 间有一个空格- 文件结尾不能包含特殊字符