问题背景
在某些受限环境中(如内网服务器、安全隔离机器等),你可能会遇到以下错误:
ModuleNotFoundError: No module named 'pip'
这通常是因为你的Python安装未包含pip,或者pip被意外删除。本文将指导你如何在完全离线的情况下安装pip。
准备工作
你需要一台能联网的电脑(用于下载必要文件)和目标离线机器。步骤如下:
- 在联网机器上下载 get-pip.py 脚本。
- 将该脚本复制到离线机器(U盘、内网传输等)。
- 在离线机器上运行该脚本即可安装pip。
详细操作步骤
1. 下载 get-pip.py
在联网电脑浏览器中访问:
https://bootstrap.pypa.io/get-pip.py
保存为 get-pip.py 文件。
2. 传输到离线机器
使用U盘、内网共享等方式将 get-pip.py 复制到目标机器。
3. 在离线机器上安装pip
打开终端(Windows用CMD/PowerShell,Linux/macOS用Terminal),执行:
python get-pip.py
如果系统有多个Python版本,请使用具体路径,例如:
/usr/bin/python3 get-pip.py
注意:此方法默认会尝试联网下载pip依赖。但自2020年起,
get-pip.py 已支持完全离线安装(内置所需wheel)。若仍失败,请参考“高级方案”。
高级方案:完全离线(含依赖)
若上述方法因网络限制失败,可手动下载pip及其依赖:
- 在联网机上访问 PyPI - pip,下载
.whl文件(如pip-24.x.x-py3-none-any.whl)。 - 同时下载依赖:
setuptools和wheel的whl文件(同样从PyPI下载)。 - 将三个文件复制到离线机。
- 依次安装:
python -m pip install setuptools-xx.x.x-py3-none-any.whl python -m pip install wheel-xx.x.x-py2.py3-none-any.whl python -m pip install pip-xx.x.x-py3-none-any.whl
验证安装
安装完成后,运行以下命令验证:
pip --version
若显示版本号,则说明安装成功!
常见问题
- Q:运行 get-pip.py 报错 SSL certificate failed?
A:这是网络问题,但在离线场景下不应出现。若出现,说明脚本试图联网,请改用高级方案。 - Q:Python版本太旧(如2.6)怎么办?
A:pip已不再支持Python 2.6及更早版本。建议升级Python。 - Q:能否在Docker容器中使用此方法?
A:可以!将 get-pip.py 添加到 Dockerfile 中即可。