You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

受限网络环境下Python包的构建、分发与安装方案咨询

受限环境下Python内部包构建与安装方案

一、最简合规的无依赖构建方案(仅用setuptools)

既然你的工具只依赖标准库,完全可以绕开build包,直接用setuptools完成构建,不需要额外安装任何依赖:

  1. 整理项目结构:
    保持最基础的结构即可:
    your-tool/
    ├── your_tool/          # 你的工具源码目录
    │   ├── __init__.py
    │   └── main.py
    └── pyproject.toml      # 仅声明构建后端
    
  2. 编写pyproject.toml:
    只需要指定setuptools作为构建后端,内容极简:
    [build-system]
    requires = ["setuptools>=61.0"]
    build-backend = "setuptools.build_meta"
    
  3. 用setup.cfg替代setup.py:
    setuptools官方推荐用setup.cfg管理打包配置,完全不需要写Python代码,彻底避开distutils弃用的问题:
    [metadata]
    name = your-tool
    version = 0.1.0
    author = 你的名字
    description = 自用标准库依赖工具
    
    [options]
    packages = find:
    python_requires = >=3.8
    
  4. 在受控外网环境构建包:
    找一台能连外网的机器(比如你的个人电脑),确保安装了指定版本的setuptools(pip install setuptools>=61.0),然后执行构建命令:
    python -m setuptools sdist bdist_wheel
    
    执行后dist/目录会生成两个文件:源码tarball(.tar.gz)和通用wheel(.whl),这两个文件可以直接拿到受限环境分发。
  5. 受限环境安装:
    团队成员拿到包后,用你已经在使用的命令安装即可:
    pip install --no-deps dist/your-tool-0.1.0.tar.gz
    # 或者用wheel包,安装更快
    pip install --no-deps dist/your_tool-0.1.0-py3-none-any.whl
    
    因为工具只依赖标准库,--no-deps完全不会影响功能。

二、如果坚持要用setup.py(无视弃用提示的场景)

如果你还是想用setup.py,也可以基于setuptools编写,不要直接依赖已移除的distutils:

from setuptools import setup, find_packages

setup(
    name="your-tool",
    version="0.1.0",
    packages=find_packages(),
    python_requires=">=3.8",
    author="你的名字",
    description="自用标准库依赖工具"
)

同样搭配上面的极简pyproject.toml,然后用python -m setuptools sdist bdist_wheel构建。这种方式虽然不是官方最推荐,但在受限环境下足够稳定,且不会依赖额外的build包。

三、分发流程优化建议

  • 统一构建环境:固定一台有外网的受控机器完成所有包的构建,提前把setuptools更新到指定版本,确保每次构建的包一致,避免环境差异导致的问题。
  • 搭建内部PyPI仓库:如果团队有多个工具需要分发,可以用devpi搭建一个简单的内部仓库,把构建好的包上传进去。成员安装时指定--index-url指向内部仓库,再加--no-deps,批量管理更方便。
  • 验证包完整性:构建后计算包的哈希值(比如MD5或SHA256),分发给成员时附带哈希,确保包在传输过程中没有被篡改,符合安全合规要求。

内容的提问来源于stack exchange,提问作者GandalfDG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:57:10