logo
0
0
WeChat Login

Python 云原生开发环境

基于 CNB 的自定义 Python 开发环境,使用 uv 作为包管理器,支持选择云端开发环境配置。

注意

  • 未能实现从按钮流水线的 loading 页自动跳转被激活流水线页面,需要等待几秒,在按钮流水线结束并激活自定义事件后再点击 "云原生开发" 按钮进入或在头像菜单 我的云原生开发 列表页进入。
  • 镜像不存在时需要等待构建并推送才会激活。
  • 不适用于 '"cnb:arch:arm64:v8"' 节点。

功能特性

  • 使用 uv 创建默认的项目虚拟环境,并添加配置
  • 配置腾讯内网镜像源(apt + uv),加速下载
  • 预装 VSCode 扩展:Python、BasedPyright、中文语言包,并添加配置
  • 支持自定义 CPU 核数和节点架构(amd64/arm64/GPU)

项目结构

. ├── .cnb.yml # CNB 配置入口 ├── .cnb/ │ ├── python-env # Dockerfile 构建文件 │ ├── web_trigger.yml # 云开发按钮触发配置 │ └── scripts/ │ ├── prepare_python_env.sh # Python 环境准备脚本 │ ├── check_params.sh # 参数检查脚本 │ ├── create_languagepacks.sh # 中文语言包配置脚本 │ └── add_vscode_config.sh # 插件和窗口配置脚本 ├── pyproject.toml # uv 项目配置文件 ├── main.py # 示例入口文件 ├── .gitignore └── README.md

构建命令

镜像不存在时流水线会自动触发构建,并推送到制品库。

# 构建镜像 docker build -f .cnb/python-env -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}/python-env:latest . # 推送镜像 docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}/python-env:latest

自定义云开发配置

在 CNB 仓库页面点击「远橙开发」按钮,可自定义:

  • CPU 数量:amd64 节点 1 ~ 64 核,arm64 节点 1 ~ 16 核
  • 节点类型:amd64 / arm64:v8 / amd64:gpu / amd64:gpu:H20 / amd64:gpu:L40

uv 包管理器说明

  • 默认 Python 解释器由 uv 管理,位于 /opt/uv-envs/venv/bin/python
  • 为新的虚拟环境安装依赖需要设置 UV_PROJECT_ENVIRONMENT 环境变量

uv 常用命令

# 索引模式,优先选择第一个具有兼容版本的索引 export UV_INDEX_STRATEGY="unsafe-first-match" # 安装依赖 uv pip install <package> # 同步 pyproject.toml 中的依赖 uv sync

VSCode 配置

  • 镜像中已使用 .cnb/scripts/create_languagepacks.sh 脚本生成中文语言包配置
  • 流水线中已使用 .cnb/scripts/add_vscode_config.sh 添加插件配置到工作区 settings.json ,因为用户配置会被漫游覆盖,可自行添加到用户配置进行漫游后取消相关代码。

参考资源

About

Python 开发环境,支持选择云端开发环境配置

Language
Shell98.9%
Python1.1%