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 手动指定版本)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务