怎么在离线环境下安装Python 3.6.6
详细讲解在无外网隔离环境下安装Python 3.6.6的完整方案,涵盖Windows独立安装包静默安装、Linux离线依赖处理与源码编译、离线pip配置及常见排错方法。
在企业生产环境、金融内网或专用保密节点中,目标主机通常与互联网完全物理隔离。在这些环境下安装特定版本(如 Python 3.6.6),无法依赖自动联网安装程序或在线包管理器。解决这一问题的标准路径是:在具备互联网访问权限的外网辅助机上,下载与目标操作系统架构完全匹配的官方完整离线安装包及必要依赖库,通过移动存储或受信任的内部通道转移至离线主机,随后在本地完成解压、静默安装或编译,并手动配置环境变量与离线包索引。
一、前期准备与离线安装核心步骤
离线安装的核心要求是在不联网的前提下,一次性备齐所有基础文件与系统运行时。由于隔离环境无法自动解析或下载丢失的动态链接库,因此在外网筹备阶段必须精确核对操作系统版本与硬件架构(32 位 x86 或 64 位 x86_64)。整个操作流程可以拆解为五个核心阶段:外网机资源打包、安全介质转运、离线主机部署、系统环境配置与终端验证。
在有网络的辅助电脑上,需从 Python 官方文件归档中心下载 Python 3.6.6 官方资源包:
- Windows 平台:下载
python-3.6.6-amd64.exe(64位独立可执行安装包)或python-3.6.6.exe(32位版本)。不要下载体积仅几兆字节的web-based installer(网络在线安装程序),后者在运行期间会强制连接网络拉取组件。 - Linux 平台:下载
Python-3.6.6.tgz源代码压缩包(MD5 值为c034be8c8b184b2c01995cb7bc7d2539)。 - 前置运行时补丁:对于较旧的 Windows 7 或 Windows Server 2008/2012 主机,必须额外准备
Visual C++ Redistributable for Visual Studio 2015离线安装文件(vc_redist.x64.exe)以及系统更新补丁KB2999226(Universal C Runtime)。缺少此项会导致启动 Python 时出现缺少 DLL 的系统级报错。
二、方案对比:完整安装包与嵌入式便携包的关键差异
在离线 Windows 环境中,官方为 Python 3.6.6 提供了两种不依赖外网的分发形式:一种是完整独立安装程序(Executable Installer),另一种是嵌入式免安装压缩包(Windows x86-64 embeddable zip file)。理解二者的结构差异对离线部署的成败至关重要。
在离线环境下,选择正确的分发包能避免后续的大量排错时间:
- 为何离线通用环境应使用 Executable Installer:完整安装包内置了经过签名的
pip、setuptools以及完整的 C 语言运行时依赖项。在离线状态下运行该安装包,无需外网下载即具备完整的包管理能力,后续安装本地 Wheel 库时无需二次修补解释器。 - 嵌入式包的限制:Embeddable Zip 虽然绿色便携,但其为了轻量化禁用了 site-packages 路径自动加载,且不自带
pip。若在离线环境下误选该包,读者必须自行通过十六进制或文本方式修改python36._pth取消import site注释,并手动挂载本地 pip 引导脚本,维护成本较高。
三、Windows 离线环境安装与配置步骤
在 Windows 离线主机上,推荐通过命令行静默参数或图形界面自定义安装完成部署。使用命令行安装不仅操作精确,还能规范所有节点的安装路径并自动化注册系统变量。
1. 预先安装 Universal CRT 运行库
如果目标系统为 Windows 7 SP1 或 Windows Server 2008 R2/2012,在运行 Python 安装包前,必须先在离线主机上双击执行 vc_redist.x64.exe 完成 Visual C++ 2015 基础组件安装。如未安装,Python 3.6.6 安装程序在自检阶段就会报错中断。
2. 执行静默安装命令
以管理员身份打开命令提示符(CMD),切换至安装包所在目录,执行以下静默安装指令:
python-3.6.6-amd64.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0 TargetDir="C:\Python36"
参数解释:
/quiet:静默无交互模式,不弹出图形向导。InstallAllUsers=1:为计算机上的所有用户安装,并将文件部署至全局目录。PrependPath=1:自动将 Python 及其 Scripts 目录追加到系统PATH环境变量的最前端。Include_test=0:不安装官方单元测试套件,节约离线磁盘空间。TargetDir="C:\Python36":明确指定安装根路径,避免路径中包含空格或中文字符导致第三方工具解析出错。
如果选择双击运行安装包进行图形向导安装:必须在首个向导窗口底部勾选 “Add Python 3.6 to PATH”,随后点击 “Customize installation”。在随后的组件列表中,确认勾选 pip 和 tcl/tk and IDLE,最后在高级选项中勾选 Install for all users 并将路径设为简洁的 C:\Python36。
3. 验证终端输出
安装完成后,重新打开一个新的命令提示符窗口(必须重启终端以使新 PATH 生效),执行版本检查:
C:\> python --version
Python 3.6.6
C:\> pip --version
pip 10.0.1 from C:\Python36\lib\site-packages\pip (python 3.6)
四、Linux 离线环境源码编译安装步骤
Linux(如 CentOS 7、Ubuntu 18.04 等)离线主机通常因安全性要求不开放外部软件源(Yum/Apt)。在 Linux 下安装 Python 3.6.6,最规范的方法是通过 Python-3.6.6.tgz 源码进行本地编译安装。
1. 离线准备编译依赖(以 CentOS 7 为例)
在同架构的联网机器上,利用 yumdownloader 或 yum --downloadonly 提取编译所需的 RPM 依赖包:
# 在外网同版本机器上执行:
mkdir -p /root/python_deps
yum install --downloadonly --downloaddir=/root/python_deps \
gcc make zlib-devel bzip2-devel openssl-devel ncurses-devel \
sqlite-devel readline-devel tk-devel gdbm-devel db4-devel \
libpcap-devel xz-devel libffi-devel
将 /root/python_deps 打包后拷贝到离线 Linux 主机,并在本地进行全量安装:
# 在离线主机上本地安装依赖包:
cd /root/python_deps
rpm -Uvh --replacepkgs --replacefiles *.rpm
2. 解压与编译安装
将 Python-3.6.6.tgz 拷贝至离线主机的 /usr/local/src 目录,执行解压、配置、编译并安装到独立目录:
cd /usr/local/src
tar -zxvf Python-3.6.6.tgz
cd Python-3.6.6
# 配置安装路径,启用代码性能优化
./configure --prefix=/usr/local/python36 --enable-optimizations
# 编译并使用 altinstall 避免覆盖系统默认 python
make -j4
make altinstall
许多 Linux 发行版(例如 CentOS 7)的系统管理工具(如 yum)深度依赖系统预装的 Python 2.7。如果执行普通的 make install,会强行覆盖 /usr/bin/python 软链接,导致系统包管理器崩溃。使用 make altinstall 仅生成带版本后缀的二进制文件(如 python3.6),保持系统底层的稳定性。
3. 配置全局符号链接
为了让各用户能在终端直接运行 python3.6 和 pip3.6,建立软链接指向全局 /usr/bin 路径:
ln -s /usr/local/python36/bin/python3.6 /usr/bin/python3.6
ln -s /usr/local/python36/bin/pip3.6 /usr/bin/pip3.6
# 验证运行结果(示例):
python3.6 -V
# 终端输出示例:Python 3.6.6
python3.6 -c "import ssl; import zlib; print('Dependencies OK')"
# 终端输出示例:Dependencies OK
五、离线环境下的 pip 与第三方库安装方法
成功安装 Python 3.6.6 后,通常需要配合项目所需的第三方模块。在无法连接 PyPI(https://pypi.org)的完全离线状态下,直接执行 pip install package 会产生网络超时错误(Connection timed out)。必须通过“在外网下载离线 Wheel 包 + 离线机本地索引”的方案闭环安装。
1. 联网机生成离线 Wheel 包与依赖清单
在具备外网环境、且安装了与目标机相同操作系统及相同 Python 3.6.6 版本的辅助机上,准备项目的 requirements.txt,然后执行下载指令:
# 仅下载 wheel/tar.gz 文件到 packages 目录,不安装到本地系统:
pip download -d ./packages -r requirements.txt
此命令会自动解析所有下级依赖包,并将所有所需的 .whl 和源码包完整拉取至本地 ./packages 目录。
2. 离线主机本地无外网安装
将 packages 文件夹及 requirements.txt 一同转移到离线主机,执行本地目录安装指令:
# --no-index 明确禁止连接外部网络
# --find-links 指向本地存放离线包的绝对或相对目录
pip install --no-index --find-links=./packages -r requirements.txt
六、离线安装常见问题排查与验证清单
在离线环境下排查问题,无法通过网络搜索错误代码,以下列出安装 Python 3.6.6 时最常出现的三个典型故障与排查处置方式:
| 故障现象 | 根本原因 | 具体解决方法 |
|---|---|---|
Windows 提示缺失 api-ms-win-crt-runtime-l1-1-0.dll |
系统缺少 Universal C Runtime 基础支持,常见于未打补丁的 Win7 或 Windows Server 2008。 | 从外网机下载对应系统的 KB2999226 补丁或 vc_redist.x64.exe,离线安装后重启系统即可解决。 |
Linux 编译后 import _ssl 报错 No module named '_ssl' |
源码编译执行 ./configure 阶段未检测到 openssl-devel 头文件,导致跳过了 SSL 模块编译。 |
先离线补齐安装 openssl-devel,然后回到 Python-3.6.6 源码目录重新执行 ./configure 和 make altinstall。 |
pip 执行时提示 Could not find a version that satisfies the requirement |
在离线执行 pip install 时未添加 --no-index 和 --find-links 参数,导致 pip 尝试连接 PyPI 失败。 |
确保安装命令包含 --no-index --find-links=/path/to/wheels,且 wheel 文件的平台架构标签与目标环境相匹配。 |
综上所述,离线环境下安装 Python 3.6.6 的本质在于前置依赖准备与本地安装路径控制:Windows 平台务必通过独立的 Executable Installer 避免嵌入式压缩包导致的 pip 缺失与 site 路径问题;Linux 平台则必须先离线补全 openssl-devel、zlib-devel 等底层编译依赖,并严格使用 make altinstall 避免污染宿主系统。安装完成后通过 --no-index --find-links 方式管理本地 Wheel 库,即可在无网络环境中构建稳定高效的 Python 3.6.6 运行时环境。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













