众所周知TensorFlow是基于Python的,因此安装的前置条件就是需要安装Python,从TensorFlow的官网得知,TensorFlow是支持Python2与python3的,我的想法是既然支持Python3那就让它运行在最新的版本上,那么问题来了,现有的很多Python应用对Python3的支持还不够好,所以问题就来了,怎样让多个版本的Python在同个Mac下和谐共处?
安装多个版本Python在同个Mac 之前处理多个Java版本共存环境的时候碰到这样的解决方案 jenv 按照这个逻辑应该在Python下会有类似的解决方案。 仔细寻找后找到了pyenv 当然pyenv也支持brew安装$ brew install pyenv
然后添加pyenv init在环境shell中 eval "$(pyenv init -)
之后就可以使用pyenv安装Python3了, 当然安装也比较简单 $ pyenv install 3.6.1
查看安装的Python所有版本可以使用$ pyenv versions
1 2 3 ➜ ~ pyenv versions * system (set by /Users/RichardLee/.pyenv/version) 3.6.1
更改全局的Python版本使用$ pyenv global 3.6.1
设置当前目录的Python版本$ pyenv local 3.6.1
另附Ubuntu下pyenv安装配置方法(参考链接 ):
1 2 3 4 5 6 7 8 9 10 11 12 sudo apt-get install git python-pip make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev sudo pip install virtualenvwrapper git clone https://github.com/yyuu/pyenv.git ~/.pyenv git clone https://github.com/yyuu/pyenv-virtualenvwrapper.git ~/.pyenv/plugins/pyenv-virtualenvwrapper echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrcecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrcecho 'eval "$(pyenv init -)"' >> ~/.bashrcecho 'pyenv virtualenvwrapper' >> ~/.bashrcexec $SHELL
安装TensorFlow 没有太多其他的步骤,按照官网安装指导
安装pip和virtualenv
1 2 $ sudo easy_install pip $ sudo pip install --upgrade virtualenv
创建TensorFlow文件夹,和virtualenv环境
1 2 3 4 $ cd ~ $ mkdir tensorflow $ cd tensorflow $ virtualenv --system-site-packages -p python3 .
激活virtualenv环境
1 $ source ~/tensorflow/bin/activate
安装TensorFlow包
1 $ pip3 install --upgrade tensorflow
验证安装 完成上面的安装后,还是需要验证下TensorFlow是否安装成功。$ Python
1 2 3 4 >>> import tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!' ) >>> sess = tf.Session() >>> print (sess.run(hello))
如果安装成功会输出下面的结果:
验证过程中碰到的问题 1 2 3 4 ...... The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations. The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations. ......
这里的问题并不严重,这只是警告级别的log,如果希望屏蔽这些警告的log,只需要在环境变量中设置export TF_CPP_MIN_LOG_LEVEL=2
, 可以将这段添加到zshrc中,然后重新开启terminal,这个问题就解决了。