mac基于VirtualEnv安装TensorFlow(python 升级)

安装环境:mac pro 10.12.6,可翻墙

本文共两部分:升级python和安装TensorFlow

升级python参考:https://blog.****.net/hou_manager/article/details/79555809

安装TensorFlow以及demo:https://blog.****.net/Cloudox_/article/details/77823389

安装TensorFlow:http://www.tensorfly.cn/tfdoc/get_started/os_setup.html#virtualenv_install

TensorFlow官网:https://www.tensorflow.org/guide/

STEP 1 安装Xcode

安装 Xcode 命令行工具,一般mac自带。

xcode-select --install

mac基于VirtualEnv安装TensorFlow(python 升级)

STEP 2 安装Homebrew

参考:https://blog.****.net/qq_41234116/article/details/79366454

1、安装Homebrew

可以参考官网或者直接粘贴:PS:据说下载的命令是会更新的,最好还是及时去官网找最新的下载命令。

 官网:http://brew.sh/

mac基于VirtualEnv安装TensorFlow(python 升级)

mac基于VirtualEnv安装TensorFlow(python 升级)

mac基于VirtualEnv安装TensorFlow(python 升级)

2、安装成功,出现字样“安装成功”

mac基于VirtualEnv安装TensorFlow(python 升级)

Homebrew安装成功后,会自动创建目录 /usr/local/Cellar 来存放Homebrew安装的程序。 这时你在命令行状态下面就可以使用 brew 命令了。

STEP 3 安装Python

要正式进入安装Python的步骤了! 
1、首先,输入

python --version

会有如下结果:

mac基于VirtualEnv安装TensorFlow(python 升级)

这是Mac系统要使用的Python,不去动它。所以现在我们要用homebrew来安装自己使用的Python。

2、利用homebrew搜索Python

brew search python
  • 会有如下结果:

mac基于VirtualEnv安装TensorFlow(python 升级)

3、开始安装:默认安装的是python3

brew install python

 出现如下图样式,安装成功

mac基于VirtualEnv安装TensorFlow(python 升级)

mac基于VirtualEnv安装TensorFlow(python 升级)

注:制定按照版本,

  • python2命令
brew install python2
  • python3安装
brew install python3

4、安装成功后,查看安装的目录

open /usr/local/Cellar/

mac基于VirtualEnv安装TensorFlow(python 升级)

STEP 4 设定路径$PATH (不和系统Python干扰)

什么是路径$PATH呢?

还记得我们在装Python的时候,输入了brew, 系统就自动会知道要开始跑homebrew。 系统到底怎么知道我们的brew在哪里? 
这就是$PATH的用途了!

echo $PATH

如图所示

mac基于VirtualEnv安装TensorFlow(python 升级)

分号(:)是分隔的意思 ,所以当你在terminal里面输入brew时 ,系统就会开始从/usr/bin找起 ,如果在/usr/bin里面找不到的话,就会往下一个/bin去搜寻,以此类推。

现在,我们回到文件夹去看 ,brew其实就在/usr/local/bin里面

mac基于VirtualEnv安装TensorFlow(python 升级)

mac基于VirtualEnv安装TensorFlow(python 升级)

所以现在的问题就是,系统在/usr/bin里面也有一份Python 
现在我们在/usr/local/Cellar里面也装了Python 

mac基于VirtualEnv安装TensorFlow(python 升级)

这样在terminal打上python指令时,谁会被开启呢? 
因为路径有顺序,所以它会先找到系统的Python ,现在就要来解决这个问题

sudo emacs /etc/paths

sudo让我们取得管理员权限 ,用emacs这个程序编辑路径档案 ,terminal会要求输入密码

mac基于VirtualEnv安装TensorFlow(python 升级)

如果不是这个顺序,调整成这个顺序。

control + k:把一行字剪下来 
control + y:把字粘贴 
control + x + s:存盘 
control + x + c:关掉emacs

这时,重启terminal 会看到变化,再打一次

echo $PATH

STEP 5 安装完成,确认结果

这样就完成啰! 
其实python3本身比较不会跟其他人打架 
因为他就是独立的python3 ,所以我们主要是要确认是不是读到我们用brew装的python

which python

mac基于VirtualEnv安装TensorFlow(python 升级)

如图所示带便安装成功。

如果想使用系统的Python,就输入

/usr/bin/python

mac基于VirtualEnv安装TensorFlow(python 升级)

查看python3 目录,发现其目录是在local下,可以看到有python3

cd /usr/local/bin

mac基于VirtualEnv安装TensorFlow(python 升级)

查看系统的安装的各个python 版本如下:

mac基于VirtualEnv安装TensorFlow(python 升级)

我这里未按照python2,所有看没有目录。

STEP 6 做虚拟环境

参考:https://www.jianshu.com/p/3b12ca94ef0c

在 ~ 目录下新建一个python的文件夹,然后在python里面再新建python3,然后进入到对应的文件夹里安装虚拟环境。

(~  =  /Users/mazhongxin 也就是说,你的home目录。参考:https://www.jianshu.com/p/9cbc9e9633f7

1、打开终端输入框,就是自己的home目录,新建python 文件夹, 在新建python3文件夹

mac基于VirtualEnv安装TensorFlow(python 升级)mac基于VirtualEnv安装TensorFlow(python 升级)

2、进入到python3 目录执行下面命令

$ cd ~/python/python3
$ sudo pip3 install virtualenv
$ virtualenv venv_py3 #根据使用情况判断是否使用该目录,我这里并没有使用这个目录,直接跳过,使用另一个目录了
$ . venv_py3/bin/activate   #启动虚拟环境,我这里并没有使用这个目录,直接跳过,使用另一个目录了

mac基于VirtualEnv安装TensorFlow(python 升级)

3、接下来, 建立一个全新的 virtualenv 环境。为了将环境建在 ~/tensorflow 目录下, 执行:

$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow #进入该目录

mac基于VirtualEnv安装TensorFlow(python 升级)

4、环境变量配置

执行命令:open ~/.bash_profile, 配置之后pip3只能在虚拟环境中才可使用, 如果在非虚拟环境下会报错

open ~/.bash_profile

mac基于VirtualEnv安装TensorFlow(python 升级)

添加以下内容
export PIP_REQUIRE_VIRTUALENV=truemac基于VirtualEnv安装TensorFlow(python 升级)

保存配置的环境变量:source ~/.bash_profile

source ~/.bash_profile

mac基于VirtualEnv安装TensorFlow(python 升级)

在非虚拟环境下执行报错,如下:

mac基于VirtualEnv安装TensorFlow(python 升级)

STEP 7 安装tensorflow

1、终端命令窗口,进入step6新建目录虚拟目录:tensorflow

mac基于VirtualEnv安装TensorFlow(python 升级)

2、然后, ** virtualenv(不用了就要手动停用):

$ source bin/activate  # 如果使用 bash
$ source bin/activate.csh  # 如果使用 csh
(tensorflow)$  # 终端提示符应该发生变化

mac基于VirtualEnv安装TensorFlow(python 升级)

上面两个source命令只需要根据情况运行一种,我使用的是第一种,执行命令后,命令前会多一个(tensorflow)提示符,这表示**成功了,之后的操作都会在此环境下运行。

3、接着就在 virtualenv 内, 安装 TensorFlow:

(tensorflow)$ pip install --upgrade <$url_to_binary.whl>  #尖括号中<>中的内容根据版本不同而不同

注意,根据版本不同使用不同whl: 参考官网:软件包位置部分

我这里使用的是,mac 版本目前仅支持 CPU:  pip3 install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.0-py3-none-any.whl

(tensorflow)$ pip3 install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.0-py3-none-any.whl

其他版本大同小异,比如改系统名,改版本号数字,改python版本数字,有无GPU等,版本信息可以在github看到最新的。我这里按照的python 使用的是3.7版本。

mac基于VirtualEnv安装TensorFlow(python 升级)

到此,TensorFlow就安装完成了!

STEP 8 写个Hellow World

常见的,安装完后我们写个小程序来试一试,我用的是python语言:注意我这里使用的python3。(python2的语法和python3 有不同之处,比如print)

import tensorflow as tf

# 输出Hello, TensorFlow!
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print (sess.run(hello))

# 计算 10 + 32 并输出
a = tf.constant(10)
b = tf.constant(32)
print (sess.run(a+b))

# 把一个1*2的矩阵和一个2*1的矩阵相乘并输出
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul(matrix1, matrix2)
result = sess.run(product)
print (result)

sess.close()

关于这段代码做什么,注释里已经说了,其实大概也能看懂,具体的语法可以到官网或者中文社区去学习,了解基本用法就能看懂了。

要运行,只需要把这段代码放到一个命名为 hello.py 的python文件,将文件放到我们创建的~/tensorflow目录(如果找不到这个目录,可以在终端输入 open ~/tensorflow 来在Finder中显示目录)下,或者其他目录下也可以,只是要在终端命令中进入该目录,然后运行该python文件即可:

(tensorflow)$ python hello.py

输出结果应该为:

mac基于VirtualEnv安装TensorFlow(python 升级)

除了结果之外,如果安装的是无GPU版本的,它可能还会提示你可以利用GPU来急速计算。

不再使用之后,最好停用 virtualenv:

# 当使用完 TensorFlow
(tensorflow)$ deactivate  # 停用 virtualenv
$  # 你的命令提示符会恢复原样

关于 TensorFlow

TensorFlow主要方便用来做复杂计算的,它是一个数值节点、操作节点以及之间连线表示流程图的结构,想象一下神经网络,还是很相似的。