使用Conda安装Protobuf失败求助(适配TensorFlow-GPU 1.8)
问题详情
我在Windows 10系统上使用Anaconda 4.8.3(Python版本3.6.0),执行以下命令安装Protobuf以适配TensorFlow-GPU 1.8:
conda install -c anaconda protobuf
但安装失败,报错信息如下:
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
我的conda配置信息如下:
add_anaconda_token: True add_pip_as_python_dependency: True aggressive_update_packages: - ca-certificates - certifi - openssl allow_conda_downgrades: False allow_cycles: True allow_non_channel_urls: False allow_softlinks: False always_copy: False always_softlink: False always_yes: None anaconda_upload: None auto_activate_base: True auto_stack: 0 auto_update_conda: True bld_path: changeps1: True channel_alias: conda.anaconda.org
亲测有效的解决办法
我之前也碰到过好几次conda这种依赖求解失败的情况,给你几个靠谱的解决思路:
先更新conda本身
过时的conda版本很容易出现依赖匹配问题,先执行这条命令把conda更到最新版:conda update conda更新完成后再重新尝试安装Protobuf。
指定TensorFlow 1.8兼容的Protobuf版本
TensorFlow-GPU 1.8对应的Protobuf版本是3.6.x,直接指定版本安装能避开版本冲突:conda install -c anaconda protobuf=3.6.0清理conda缓存
缓存的旧包数据可能干扰依赖求解逻辑,执行这条命令清理所有缓存:conda clean -a这个操作只会删除未使用的包和缓存文件,不会影响你已有的环境。
去掉频道参数,用默认频道安装
有时候指定-c anaconda频道反而会引入不必要的依赖冲突,试试直接用默认频道安装:conda install protobuf新建专属虚拟环境
如果当前环境的依赖已经混乱,最稳妥的办法是新建一个干净的环境来装TensorFlow-GPU 1.8和Protobuf:conda create -n tf18_env python=3.6 conda activate tf18_env conda install tensorflow-gpu=1.8 protobuf全新环境没有旧依赖的干扰,基本能一次性搞定。
内容的提问来源于stack exchange,提问作者mONA

