如何在离线Windows CPU环境用Conda从tar.bz2包安装PyTorch?
离线Windows纯CPU环境PyTorch安装失败排查与解决
问题背景
需在无网络的纯CPU隔离Windows环境中,通过conda(或mamba、micromamba)安装PyTorch。尝试从anaconda.org下载PyTorch、torchvision、cpuonly的tar包后,用conda install --offline命令安装,但导入torch时出现动态链接库加载错误。
复现步骤与报错信息
> conda create -n last_test > conda activate last_test > conda install -y python==3.10 > conda install -y --offline pytorch-1.13.1-py3.10_cpu_0.tar.bz2 torchvision-0.14.1-py310_cpu.tar.bz2 cpuonly-2.0-0.tar.bz2 > conda -V conda 22.9.0 > python -V 3.10.0 > python -c "import torch;" Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Users\$user\AppData\Local\mambaforge\envs\pytorch_test\lib\site-packages\torch\__init__.py", line 139, in <module> raise err OSError: [WinError 126] 找不到指定的模块。加载 "C:\Users\$user\AppData\Local\mambaforge\envs\pytorch_test\lib\site-packages\torch\lib\shm.dll" 或其依赖项时出错。
原因分析与解决方案
核心原因
离线安装时仅手动下载了PyTorch相关的主包,未包含其间接依赖的动态链接库或系统级依赖包,导致shm.dll无法找到所需依赖。
可行解决步骤
在联网环境预下载完整依赖包
- 联网机器上创建与目标环境一致的conda环境:
conda create -n temp_env python=3.10 conda activate temp_env conda install pytorch=1.13.1 torchvision=0.14.1 cpuonly -c pytorch - 导出环境依赖清单:
conda list --explicit > pytorch_deps.txt - 批量下载所有依赖包(包括间接依赖):
conda install --download-only --file pytorch_deps.txt - 找到conda下载目录(通常为
conda/pkgs),将所有.tar.bz2包复制到离线Windows环境。
- 联网机器上创建与目标环境一致的conda环境:
离线环境批量安装
在离线环境的conda激活状态下,进入存放包的目录,执行:conda install --offline *.tar.bz2额外验证项
- 确认下载的包与Python 3.10、Windows系统完全匹配,避免版本不兼容。
- 检查包文件完整性,重新下载哈希值不匹配的包。
内容的提问来源于stack exchange,提问作者cbo
相关产品推荐
相关产品推荐

