最近按照TensorFlow官网给的在windows下利用Anaconda安装tensorflow的方法,遇到不少问题,安装过程具体如下:
(1)以管理员身份运行Anaconda Prompt
(2)输入以下命令创建tensorflow环境
conda create -n tensorflow pip python=3.5
以这种创建环境的方式安装tensorflow可以在Anaconda2下进行,不然Anaconda2下无法安装tensorflow,具体原因是Anaconda用的Python 2.7,而TensorFlow支持的是 Python 3.5.x 或 3.6.x,所有直接按照以下命令安装会报错(如下图):
pip install --ignore-installed --upgrade tensorflow-gpu
报错的内容是找不到合适的TensorFlow版本,即也说明TensorFlow并不支持Python 2.7,这会让使用Caffe的用户很头疼,因为Caffe只支持Python2.7,如果要使用TensorFlow就无法用上述直接的方式安装(Anaconda3可以直接这样安装,且这样直接安装的方式可以在jupyter notebook和spyder调用tensorflow不会出错,因为在同一个环境下)。
(3)激活环境
activate tensorflow
(4)安装仅支持 CPU 的 TensorFlow 版本,请输入以下命令
pip install --ignore-installed --upgrade tensorflow
要安装 GPU 版本的 TensorFlow,请输入以下命令(仅支持CPU和GPU版本只能安装一个):
pip install --ignore-installed --upgrade tensorflow-gpu
按上述创建环境的方法安装TensorFlow会出现原环境下的jupyter notebook和spyder调用tensorflow出现ImportError: No module named tensorflow,如下图:
原因也很简单,tensorflow的环境和原环境(root)不是同一个环境,如下图:
但是无法使用jupyter notebook和spyder的话,会很难受,毕竟不可能天天在那黑框框下编程,而且每次都得输入以下语句激活tensorflow环境才能使用TensorFlow:
activate tensorflow
解决方法也很简单,直接在tensorflow环境下安装新的jupyter notebook和spyder。
(1)安装jupyter notebook,在终端依此输入以下命令
activate tensorflow
conda install ipython
conda install jupyter
安装完后,在终端输入以下命令打开jupyter notebook:
jupyter notebook
但很不幸,有可能会发生以下错误(cannot import name 'ensure_dir_exists'):
Traceback (most recent call last):
File "D:\Users\z\Anaconda3\Scripts\jupyter-Notebook-script.py", line 6, in
from notebook.notebookapp import main
File "D:\Users\z\Anaconda3\lib\site-packages\notebook\__init__.py", line 25, in
from .nbextensions import install_nbextension
File "D:\Users\z\Anaconda3\lib\site-packages\notebook\nbextensions.py", line 27, in
from jupyter_core.utils import ensure_dir_exists
ImportError: cannot import name 'ensure_dir_exists'
网上百度到的解决方法都是输入以下语句来解决:
conda update jupyter_core jupyter_client
但实际结果是并不能解决问题,原因是jupyter_core版本太高了,需要降低版本,具体解决方法如下:
按照上图中的步骤找到jupyter_core和nbconvert,在第4步中点击jupyter_core前的√,切换版本,如下图选择一个比原先低的版本(我选了4.1.0版本),如下图:
选择完后,不要忘记点击下图中的Apply(在界面的右下角那):
nbconvert的版本也降低一下(不清楚是不是和这个有关系,因为我是先降低了这个的版本,但没有试是不是只降低它的版本就能解决上述问题,然后就直接降低了jupyter_core的版本,完事后测试了一下,发现问题已经解决。所以只是建议降低,如果降低完jupyter_core的版本就解决了问题,那这个就不需要切换版本了)。
注:nbconvert的版本我也降低到了4.1.0。
(2)安装spyder
直接在Anaconda Navigator中安装即可,即和上面一样,只是在第2步选择Not installed(注意是在tensorflow环境下),然后搜索spyder即可,然后勾上spyder,点击右下角的应用进行安装,如下图:
安装完后,会在如下图中出现标有括号(tensorflow)版的jupyter notebook和spyder:
但是直接在上图中单击Jupyter Notebook(tensorflow)或Spyder(tensorflow)是打不开的,需要在终端按以下方法打开jupyter notebook或spyder:
(1)打开jupyter notebook
activate tensorflow
jupyter notebook
(2)打开spyder
activate tensorflow
spyder
尽情享受吧!