快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」
需求:
我当前的windows 2012 电脑无法连接外网,python环境是3.8,但我需要安装 openpyxl 模块,我该如何通过pip离线下载所需要的包呢?下载下来的包如何离线安装呢?
以下内容来自@ds,记录于
2026年10月14日。
为离线环境下的 Windows Server 2012 安装 openpyxl,核心思路是:在一台有网络的电脑上,下载好 openpyxl 及其所有依赖的安装包,再复制到目标服务器上进行安装。
次方案已成功测试,在windows2012,python3.7.2环境上测试成功。
https://oneimg.onedayxyy.cn/images/2026.10.14-openpyxl_offline.zip
1et_xmlfile-2.0.0-py3-none-any.whl
2
3openpyxl-3.1.5-py2.py3-none-any.whl
扩展
这是 Python wheel 包的命名规则,格式大致是:
{包名}-{版本}-{python标签}-{abi标签}-{平台标签}.whl
对你这个文件:
| 部分 | 含义 |
| ---------- | ------------------------------------------------------------ |
| openpyxl | 包名 |
| 3.1.5 | 版本 |
| py2.py3 | 同时兼容 Python 2 和 Python 3(纯 Python,不绑死某一小版本) |
| none | 不依赖特定 ABI(没有 C 扩展) |
| any | 不限平台(Windows / Linux / macOS 都能用) |
| .whl | wheel 格式的安装包(zip 压缩的预构建包,用 pip install xxx.whl 安装) |
一句话:这是一份纯 Python、跨版本、跨平台的预构建安装包。
你需要找一台有网络、且操作系统架构(32位/64位)与目标服务器一致的电脑。openpyxl 的主要依赖是 et_xmlfile,通过 pip download 命令可以自动下载它以及所有次级依赖。
打开命令行(CMD 或 PowerShell)。
创建一个文件夹用于存放下载的包,例如 C:\openpyxl_offline。
执行下载命令。以下命令会下载 openpyxl 及其依赖,并强制只下载预编译的 wheel 文件(.whl),避免在离线服务器上因缺少编译工具而失败。
1#保存在C:\openpyxl_offline
2pip download openpyxl -d C:\openpyxl_offline --only-binary=:all: --python-version 3.8
3
4#保存在当前openpyxl_offline目录下(推荐)
5pip download openpyxl -d openpyxl_offline --only-binary=:all: --python-version 3.8参数解释:
-d C:\openpyxl_offline:指定下载文件的存放目录。--only-binary=:all::确保下载的是 .whl 二进制包,而不是需要编译的源码包。--python-version 3.8:指定为 Python 3.8 下载兼容的包,以避免版本不匹配。执行成功后,C:\openpyxl_offline 文件夹中应该会出现类似 et_xmlfile-2.0.0-py3-none-any.whl 和 openpyxl-3.1.5-py2.py3-none-any.whl 的文件。
将 C:\openpyxl_offline 整个文件夹通过 U 盘、内部文件共享或其他允许的方式,复制到你的 Windows Server 2012 电脑上,例如放置在 D:\openpyxl_offline。
在目标服务器上,以管理员身份打开命令提示符 (CMD)。
切换到存放安装包的目录:
1cd /d D:\openpyxl_offline执行离线安装命令。这个命令会告诉 pip 不要连接网络,只从本地文件夹查找并安装包及其依赖。
1pip install --no-index --find-links=. openpyxl参数解释:
--no-index:禁止 pip 访问在线索引,强制其只使用本地文件。--find-links=.:指定在当前目录 (.) 中查找安装包。pip 会自动解析依赖关系,先安装 et_xmlfile,再安装 openpyxl。安装完成后,可以通过以下命令验证 openpyxl 是否成功安装:
1python -c "import openpyxl; print(openpyxl.__version__)"如果命令输出了版本号(例如 3.1.5),则说明安装成功。
--only-binary=:all: 参数正是为了规避此问题。如果某些包没有提供 .whl 文件,pip download 可能会失败。此时,你可以尝试去掉该参数,改为下载源码包(.tar.gz),但需要在离线服务器上确保已安装 setuptools 和 wheel。.whl 文件能在目标服务器上使用,请务必确认下载电脑与目标服务器的 Python 版本(3.8.x) 和 操作系统位数(32位或64位) 完全一致。精选 · 友链 · 更多

One的公众号
爱折腾博客的小白