使用 Anaconda 配置《机器学习实战》中的 Tensorflow 环境
最近打算利用假期时间学习《机器学习实战》(第二版)这本书,于是先从 GitHub 上下载了本书的源代码示例 (https://github.com/ageron/handson-ml2) ,按照 README.md 的指示用 anaconda 安装 tf2 环境,但是出了一些问题,花了很久才搞定,下面是踩过的坑的记录。
首先按照 README.md 中 conda env create -f environment-windows.yml
尝试自动安装环境,但是安装了一部分包之后会报错CondaEnvException: Pip failed
,猜测应该是 anaconda 自己调用的 pip 出错了。
打开 environment-windows.yml
文件,内容如下:
1 | name: tf2 |
又打开 Anaconda Navigator,点开tf2
环境,发现除了 - pip:
以下的所有包都安装好了,确定是 pip 的问题,于是决定手动安装 pip 的包。
将 environment-windows.yml
中 - pip:
以下的内容拷贝到了一个新建的文本文件 pip.txt
中(删除每行前缀的-
和以#
开头的注释)之后,pip.txt
内容如下:
1 | ftfy==5.7 |
在 pip.txt
所在的文件夹打开命令行,输入 activate tf2
切换环境,再输入 pip install -r pip.txt
安装所需的库,发现还是报错,前几行是
1 | Traceback (most recent call last): |
这样的错误,完全不知道为什么,而且多次尝试安装,错误信息中 KeyError
后面的字每次还都不一样,就毫无头绪。
然后看到了一篇博客 https://blog.csdn.net/qq_43290288/article/details/113444707 ,给了我启发,从错误信息的后面一段可以看到 socket.timeout
和 Read timed out
之类的错误,猜测是网络问题,于是我改了 pip 的源(顺手把 conda 的源也改成清华的了),并且切换 WIFI 为 手机热点,再试了一遍,终于成功了。
切换 pip 源的方法:https://mirror.tuna.tsinghua.edu.cn/help/pypi/
切换 conda 源的方法:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
其实应该不需要像我刚刚那样折腾,理论上直接把 conda 和 pip 的源换成 tuna 的,然后 WIFI 换成热点就可以了,但谁能一开始就想到是网速不够的原因呢。
使用 Anaconda 配置《机器学习实战》中的 Tensorflow 环境