stagex/py-setuptoolspython3-distutils-enhanced 是一个基于 Python 3 的 Docker 镜像,集成了对标准库 distutils 的增强工具集合。该镜像旨在简化 Python 项目的构建、打包与分发流程,通过扩展 distutils 的原生功能,提供更高效、灵活的项目管理能力,适用于从简单脚本到复杂库的各类 Python 项目。
setup.py 中声明install_requires 的工作量setup.py 语法糖,支持 YAML/JSON 格式的配置文件(替代传统 setup.py 硬编码)setuptools、wheel、twine)pip、tox、pytest 等开发工具,支持一站式构建-测试-分发流程distutils/setuptools 的 Python 项目通过 Docker Hub 拉取最新版本:
bashdocker pull python3-distutils-enhanced:latest
或从源码构建(需本地克隆镜像仓库):
bashgit clone [***] cd python3-distutils-enhanced docker build -t python3-distutils-enhanced:local .
将当前目录下的 Python 项目打包为 wheel 格式:
bashdocker run --rm -v $(pwd):/app -w /app python3-distutils-enhanced:latest \ python -m setup bdist_wheel
-v $(pwd):/app:挂载当前项目目录到容器内 /app 路径-w /app:设置工作目录为 /apppython -m setup bdist_wheel:执行 wheel 打包命令(setup 为增强版打包入口)创建项目配置文件 distutils.yaml:
yaml# distutils.yaml 示例 project: name: "myproject" version: "1.0.0" author: "Dev Team" files: include: - "src/**/*.py" - "data/*.json" exclude: - "tests/**/*" dependencies: install_requires: - "requests>=2.25.0" - "pyyaml>=5.4.0"
通过环境变量指定配置文件路径,执行打包:
bashdocker run --rm -v $(pwd):/app -w /app \ -e DISTUTILS_CONFIG=/app/distutils.yaml \ python3-distutils-enhanced:latest \ python -m setup sdist
创建 docker-compose.yml,集成项目构建与测试流程:
yamlversion: "3.8" services: build: image: python3-distutils-enhanced:latest volumes: - ./:/app # 挂载项目目录 - ./dist:/app/dist # 持久化输出的包文件 environment: - PYTHONPATH=/app # 设置 Python 路径 - DISTUTILS_CONFIG=/app/distutils.yaml # 指定配置文件 - PIP_INDEX_URL=[***] # 国内 PyPI 镜像(可选) command: > sh -c "python -m setup bdist_wheel && twine check dist/*" # 打包后校验包完整性
启动服务执行构建:
bashdocker-compose up build
| 变量名 | 描述 | 默认值 |
|---|---|---|
PYTHONPATH | Python 模块搜索路径,用于指定项目源码位置 | /app |
DISTUTILS_CONFIG | 增强版 distutils 配置文件路径(支持 YAML/JSON 格式) | /app/setup.cfg |
PIP_INDEX_URL | PyPI 镜像源 URL,用于加速依赖下载 | [***] |
CACHE_DIR | 构建缓存目录(存放依赖包、编译结果等) | /root/.cache/distutils-enhanced |
| 挂载路径 | 用途 |
|---|---|
/app | 挂载项目根目录,用于读取源码和配置文件 |
/app/dist | 挂载打包输出目录,持久化生成的 wheel/sdist 包 |
/root/.cache | 挂载缓存目录(可选),加速重复构建(需配合 CACHE_DIR 环境变量) |
python -m setup)| 参数 | 描述 |
|---|---|
bdist_wheel | 生成 wheel 格式分发包 |
sdist | 生成源码分发包(tar.gz 格式) |
install | 安装项目到容器内 Python 环境(用于测试部署) |
clean | 清理构建缓存和临时文件 |
setup.py 或配置文件(DISTUTILS_CONFIG 指定路径),否则会使用默认模板生成基础配置/root/.cache 为非持久化路径,若需保留缓存,建议通过卷挂载到宿主机.git 仓库(或通过环境变量 VERSION 手动指定版本)探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务