无网络环境怎么安装Python?离线安装包下载与部署步骤

橘子海
橘子海
发布时间:2026-11-03 | 5人浏览过
原创

针对机房隔离靶机、保密内网及无网络工控机等环境,系统讲解如何在外网准备Python独立离线安装包、批量抓取Wheel依赖包,并在离线机器上进行规范安装、配置环境变量与排查常见动态库缺失的完整技术方案。

在完全没有外网连接的机房、密闭研发内网或生产隔离靶机上,安装 Python 的完整路径分为三步:首先在一台具备外网访问能力的机器上,采集目标机器的系统与硬件架构信息,下载对应的独立离线安装包(而非在线 Web 安装器),并使用 pip download 同步下载项目所需的全部第三方 Wheel 依赖包;随后通过物理存储介质转运至目标机;最后执行本地独立安装、配置系统环境变量,并借助 --no-index 指令从本地离线仓储安装所有依赖库。
无网络环境怎么安装Python?离线安装包下载与部署步骤
图 0:无网络环境下 Python 与第三方依赖包离线安装全周期总览

一、事前确认:对齐目标隔离主机的运行环境规格

无网络安装中最容易导致中途失败的原因,是在外网下载了与目标内网机不匹配的安装包或二进制轮子。在离开联网环境前,必须先摸清目标隔离主机的三项核心指标:

  • 操作系统与内核版本:确认是 Windows(如 Windows 10/11、Windows Server 2016/2019/2022)还是 Linux 发行版(如 CentOS/RHEL 7/8/9、Ubuntu 20.04/22.04)。
  • CPU 硬件架构:确认是 64 位(x86_64 / AMD64)还是 ARM 架构(aarch64)。Windows 下绝大部分为 64 位,若误下载 32 位(x86)安装包,后续大内存占用及高版本科学计算库将无法正常运行。
  • 底层 C 运行时状态:Windows 运行 Python 3.5 以上版本必须依赖 Visual C++ Redistributable (2015-2022)。若目标机是一台全新安装或精简版的 Windows,必须提前在外网准备好 VC_redist.x64.exe,否则安装后会出现丢失 api-ms-win-crt-runtime-l1-1-0.dll 的报错。

二、外网资源采集:下载独立离线安装包与依赖轮子

离线安装不仅需要 Python 解释器本体,还需要项目所需的第三方依赖库。没有外网时,目标机上的 pip install 无法连接 PyPI 索引,因此必须在外网一次性备齐所有文件。

1. 下载 Python 官方全量离线安装包

在官网的下载列表(Windows 对应页面)中,官方通常提供三种形式:Windows installer(全量独立安装包)、Windows embeddable package(便携嵌入包)和 Windows installer (community)。在此务必选择 Windows installer (64-bit)。文件名通常为 python-3.x.x-amd64.exe,体积约为 25MB 左右。切勿下载体积仅有 1MB~2MB 的 web-based installer,该安装器在运行时仍需联网拉取组件。

无网络环境怎么安装Python?离线安装包下载与部署步骤
图 1:无网络环境 Python 离线安装与依赖部署标准执行时序

2. 批量抓取 pip 第三方库的离线 Wheel 包

现代 Python 项目离不开各类第三方库(如 requests、numpy、pandas 等)。在外网电脑上,可以通过 pip 原生提供的 download 功能,根据项目需求清单,将目标库及其所有底层间接依赖全部以 .whl 二进制格式下载到本地目录中。

若联网开发机与目标离线机的系统、Python 版本完全一致,可直接在联网机终端执行:

pip download -d ./wheels -r requirements.txt
示例命令运行输出 Collecting requests (from -r requirements.txt (line 1))
  File was downloaded to ./wheels/requests-2.31.0-py3-none-any.whl
Collecting charset-normalizer<4,>=2 (from requests->-r requirements.txt (line 1))
  File was downloaded to ./wheels/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl
Collecting idna<4,>=2.5 (from requests->-r requirements.txt (line 1))
  File was downloaded to ./wheels/idna-3.6-py3-none-any.whl
Collecting urllib3<3,>=1.21.1 (from requests->-r requirements.txt (line 1))
  File was downloaded to ./wheels/urllib3-2.2.1-py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests->-r requirements.txt (line 1))
  File was downloaded to ./wheels/certifi-2024.2.2-py3-none-any.whl
Successfully downloaded requests charset-normalizer idna urllib3 certifi
跨平台/跨版本下载的参数约束

若你的外网机是 macOS 或 Linux,但目标隔离机是 64 位 Windows 且安装 Python 3.11,则必须显式声明平台与 ABI 标签,否则下载的将是外网机系统对应的依赖:

pip download   --only-binary=:all:   --platform win_amd64   --python-version 311   --implementation cp   --abi cp311   -d ./wheels   -r requirements.txt

三、离线包目录组织与物理介质转运

为了避免在隔离机器上手忙脚乱,建议在联网机器上建立规范的安装包目录结构,将主程序、基础环境补丁、依赖库及自动化脚本封装为一个完整的工程目录,再拷贝至移动硬盘或通过安全摆渡通道导入。

无网络环境怎么安装Python?离线安装包下载与部署步骤
图 2:离线部署安装包、Wheel 依赖仓储与脚本标准归档目录

在中转前,建议对主程序安装包计算哈希值,确保文件在物理转运或网络摆渡过程中没有发生字节损坏:

# Windows PowerShell 计算 SHA256
certutil -hashfile installers\python-3.11.8-amd64.exe SHA256
SHA256 校验输出示例 SHA256 的 installers\python-3.11.8-amd64.exe 哈希:
7d3b5b60e909a888c0353fa282d33458bf59cf163770a92f021e16d41864f16b
CertUtil: -hashfile 命令成功完成。

四、目标隔离主机安装部署实操

将离线文件包拷贝至目标主机的本地磁盘后(例如解压至 D:\python_offline_bundle),即可展开安装。

1. 前置组件安装(Windows 必查)

若目标机是 Windows Server 或未联网的纯净系统,首先右键以管理员身份运行 installers\VC_redist.x64.exe,根据向导完成 Visual C++ 运行库的离线安装。这一步能为 Python 提供所需的 MSVCP140.dll 等关键 C 动态链接库。

2. Python 解释器安装与环境变量配置

双击运行 python-3.11.8-amd64.exe。进入安装向导主界面时,有两处关键勾选项:

  • Add python.exe to PATH:窗口底部的复选框,务必勾选。勾选后安装程序会自动将 Python 根目录和 Scripts 目录写入当前系统或用户的环境变量中,省去后续手动编辑 Path 的步骤。
  • Use admin privileges when installing py.exe:建议保持勾选,以便为所有用户注册 Python 启动器。
  • 点击 Customize installation(自定义安装):确保 Documentation、pip、tcl/tk and IDLE、Python test suite、py launcher 全部处于勾选状态。由于完全无网,pip 此时会从安装包内嵌的压缩包中释放,无需连接外网。
  • 点击 Next 进入高级选项:建议勾选 Install for all users(为所有用户安装),并明确自定义安装路径(例如 C:\Python311 或 D:\Environment\Python311),尽量避免安装在带有中文、空格或深层 AppData 目录下,便于内网维护和路径引用。
  • 点击 Install 开始安装。安装完成后,若出现“Disable path length limit”按钮,建议点击解除 Windows 的 260 字符路径限制。
静默无人值守安装(脚本自动化场景)

如果需要在多台离线服务器上批量部署,可以编写 01_install_base.bat 脚本执行静默命令行安装:

start /wait installers\python-3.11.8-amd64.exe /quiet InstallAllUsers=1 PrependPath=1 TargetDir="C:\Python311" Include_pip=1 Include_test=0
无网络环境怎么安装Python?离线安装包下载与部署步骤
图 3:无网络环境下主流部署路径及方案优劣势矩阵对比

五、离线安装第三方依赖库(Wheel 本地装载)

Python 基础环境安装成功后,系统已具备 python 与 pip 命令,但在隔离网络中执行普通的 pip install requests 会因为连接 PyPI 超时而失败。此时必须显式指定本地离线目录。

1. 本地单包离线安装

在命令行终端进入离线包存放目录,执行以下命令安装单个包:

pip install --no-index --find-links=D:\python_offline_bundle\wheels requests

参数说明:

  • --no-index:强制 pip 忽略远程 PyPI 镜像源与默认网络索引,彻底不发起任何外部网络连接。
  • --find-links=...:指定本地离线查找目录,pip 会在该目录下的所有 .whl 和源码包中递归解析并匹配依赖关系。

2. 根据 requirements.txt 批量装载

若需要安装完整的项目依赖清单,只需执行:

cd D:\python_offline_bundle
pip install --no-index --find-links=./wheels -r requirements.txt
离线依赖安装输出示例 Looking in links: ./wheels
Processing ./wheels/requests-2.31.0-py3-none-any.whl
Processing ./wheels/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl
Processing ./wheels/idna-3.6-py3-none-any.whl
Processing ./wheels/urllib3-2.2.1-py3-none-any.whl
Processing ./wheels/certifi-2024.2.2-py3-none-any.whl
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2024.2.2 charset-normalizer-3.3.2 idna-3.6 requests-2.31.0 urllib3-2.2.1

六、离线部署验收核验与常见报错排查

完成安装与依赖注入后,切勿直接交付业务运行,应当按照系统化的测试步骤进行验收。

无网络环境怎么安装Python?离线安装包下载与部署步骤
图 4:离线环境核心验收检查项与高频故障定位排查指南
验证环节 测试指令与验证逻辑 通过标准 未通过原因与解决措施
解释器与寻址 python --version
where python
正确显示对应版本(如 Python 3.11.8),首行路径指向设定安装目录 未添加 Path。手动打开“高级系统设置”-“环境变量”,在系统变量 Path 中追加安装目录及 Scripts 目录。
底层动态库 python -c "import ssl, ctypes, sqlite3; print('Core OK')" 终端输出 Core OK,无 ImportError 抛错 缺失系统级 C 运行库。补装 VC_redist.x64.exe;Linux 环境需补装 openssl、libffi 依赖。
包管理器 pip --version 正确显示 pip 24.x 及其对应的 Python 路径 安装时漏勾 pip。在命令行执行 python -m ensurepip 离线重新释放内置 pip。
第三方依赖 pip list
python -c "import requests; print(requests.__version__)"
能够列出清单中全部依赖包,导入业务模块正常 依赖链不完整或 Wheel 平台架构不匹配。检查外网下载参数重新抓取缺失依赖包。

七、总结与最佳实践建议

无网络环境下的 Python 安装并非简单的“运行下一步”,其核心关键在于预先将不确定性消灭在外网阶段。

建立离线分发规范时,建议遵循以下两条原则:第一,始终优先使用 .whl 二进制预编译轮子,坚决避免在没有 gcc/clang 编译链的离线机器上现场编译 C/C++ 扩展;第二,将离线主程序、VC++ 运行库、wheel 依赖目录和批处理安装脚本打包为一个标准化压缩包,并附带哈希校验与自检脚本,从而实现无论内网节点如何切换,均可实现确定性、标准化的零网络依赖一键装载。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表