Docker环境下无法离线安装scipy问题排查
问题原因与解决方法
核心问题
你下载的scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl是Python 3.10专属的二进制包(文件名中的cp310明确标识适配CPython 3.10),但Docker环境使用的是Python 3.11。pip会严格校验包的Python版本兼容性,因此找不到符合要求的scipy版本。
解决步骤
重新下载适配Python 3.11的scipy包
在本地联网Linux机器上执行以下命令,指定下载Python 3.11对应的二进制包:pip download scipy==1.12.0 --platform manylinux_2_17_x86_64 --python-version 311 --only-binary=:all: -d "/home/Documents"执行后会得到类似
scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的文件。替换Docker中的安装包
将新下载的Python 3.11版本whl包复制到Docker的/tf/work路径,替换原有的Python 3.10版本包。重新执行安装命令
在Docker环境中运行:pip install scipy --no-index -f "/tf/work"此时pip会匹配到适配Python 3.11的包,完成安装。
备选方案(编译安装)
如果无法下载对应版本的二进制包,也可以下载scipy的源码包(.tar.gz格式),复制到Docker后执行安装。但需要提前在Docker环境中安装编译依赖(如gcc、gfortran、openblas-devel等),编译过程耗时较长。
内容的提问来源于stack exchange,提问作者benneo
相关产品推荐
相关产品推荐

