如何在conda环境安装旧版Keras 1.2.0、TensorFlow 1.1.0解决版本异常
旧版Keras/TensorFlow混装残留修复方案
问题核心原因:conda与pip跨渠道安装的包存在Python搜索路径优先级冲突,常规带--force的强制卸载、单源卸载无法完全清除高版本Keras的残留文件,导致Python启动时优先加载到没删干净的2.4.3版本包,而不是目标低版本包。
操作步骤
1. 彻底清除所有Keras、TensorFlow残留
不要只做单源卸载,要全链路清干净容易被遗漏的残留:
- 先激活你的项目专属conda环境:
conda activate 你的项目环境名称 - 依次执行全源卸载命令,覆盖conda、pip渠道安装的所有相关包:
conda remove keras tensorflow --allpip uninstall -y keras tensorflow keras-preprocessing keras-applications
- 手动排查两类高优先级残留路径:
- 运行命令获取当前Python的系统包安装路径:
python -c "import site; print(site.getsitepackages())",输出的每个路径下,删除所有名称包含keras、tensorflow的文件夹及对应的dist-info元数据目录 - 运行命令获取用户级包安装路径:
python -c "import site; print(site.getusersitepackages())",这个路径的优先级高于conda环境内的包路径,哪怕重建了conda环境,这里的残留包依然会被优先加载,必须把路径下所有keras、tensorflow相关的文件夹、元数据目录全部删除
- 运行命令获取当前Python的系统包安装路径:
- 验证残留是否清干净:运行
python -c "import keras",如果返回ModuleNotFoundError报错,说明所有高版本残留已经完全清除。
2. 按兼容版本重新安装目标框架
注意:Keras 1.2.0、TensorFlow 1.1.0属于早期版本,仅支持Python 3.5/3.6运行环境,如果当前环境Python版本高于3.6,直接重建环境比反复修依赖效率更高:
- 重建适配的干净环境:
conda create -n 你的项目环境名 python=3.6.10 - 激活环境后安装指定版本的核心框架,避免再次混装冲突:
- 优先从conda源拉取匹配版本:
conda install tensorflow=1.1.0 keras=1.2.0 -c conda-forge - 若conda源无法获取对应版本,再通过pip指定精确版本安装,安装时禁用缓存避免拉到旧的残留包:
pip install --no-cache-dir tensorflow==1.1.0 keras==1.2.0
- 优先从conda源拉取匹配版本:
3. 校验实际加载的库路径,解决Jupyter内核错位问题
很多时候版本显示不对,是因为Jupyter关联的Python内核根本不是你正在操作的conda环境:
- 安装完库后运行代码做双重校验:
- 执行
import keras; print(keras.__file__),确认输出的文件路径完全处于当前激活的conda环境目录下,没有指向系统Python或者其他环境的包路径 - 执行
print(keras.__version__)、print(tensorflow.__version__),确认版本输出为1.2.0、1.1.0
- 执行
- 如果存在内核错位问题,给当前conda环境注册专属Jupyter内核:
python -m ipykernel install --user --name 你的项目环境名 --display-name "旧版TF/Keras项目环境",之后重启Jupyter,选择对应内核再运行代码校验即可。
内容的提问来源于stack exchange,提问作者ssmalik
相关产品推荐
相关产品推荐

