mac安装 TensorFlow python开发环境
TensorFlow Python API 依赖 Python 2.7 版本.
而我的默认环境下,安装的Python 就是2.7 版本的,所以不用更换,直接安装即可。
$ python -V
屏幕快照 2017-11-13 下午12.49.04.png
开始安装
$ sudo easy_install pip
$ sudo easy_install --upgrade six
$ pip install tensorflow
前两部都很顺利,但是第三步提示
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/enum'
报错,只好sudo,用sudo权限试试:
$ sudo pip install tensorflow
但是仍然 OSError: [Errno 1] Operation not permitted:
这就尴尬了·······
一通百度谷歌,查到这是因为rootless是mac在升级为OS X EI Capitan之后,一个超然的权限管控机制(关键字SIP,有兴趣童鞋可以自己深挖),
它锁死了一些敏感的目录,例如/usr/bin/,不让可疑程序(例如无辜躺枪的gem)有可趁之机。
解决办法:
1)重启Mac,并在重启的时候按 Command + R,进入维护模式。
2)选择工具栏中的 “实用工具 - 终端”。
3)在终端中执行以下命令:
$ csrutil disable;
4)重新启动
然后打开终端:
$ sudo pip install tensorflow
终于:
屏幕快照 2017-11-13 下午12.14.10.pngSuccessfully installed backports.weakref-1.0.post1 bleach-1.5.0 funcsigs-1.0.2 futures-3.1.1 html5lib-0.9999999 markdown-2.6.9 mock-2.0.0 numpy-1.13.3 pbr-3.1.1 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc2 wheel-0.30.0
测试
打开一个 python 终端:
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
运行结果:
屏幕快照 2017-11-13 下午12.14.19.png
继续
>>> a = tf.constant(10)
>>> b = tf.constant(22)
>>> print sess.run(a+b)
运行结果:
屏幕快照 2017-11-13 下午12.16.17.png
用pycharm编译测试
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tensorflow as tf
def helloworld():
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print sess.run(hello)
def plus_test():
a = tf.constant(10)
b = tf.constant(22)
sess = tf.Session()
print sess.run(a + b)
helloworld()
plus_test()
执行结果:
/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/caobo/PycharmProjects/TensorFlowTest/helloWorld.py
2017-11-13 12:59:40.324766: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
Hello, TensorFlow!
32
Process finished with exit code 0
当然,“I tensorflow/core/platform/cpu_feature_guard”这个,是warnings,不是error。这些warings的意思是说:你的机器上有这些指令集可以用,并且用了他们会加快你的CPU运行速度,但是你的TensorFlow在编译的时候并没有用到这些指令集。
你可以选择将头埋进沙子里。
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
其他的找不到特别好的方案,说是需要git 最新代码,配置好再生成新的库再安装tensorflow。各种麻烦各种坑。想想办法,以后搞定这个事情。
最后
为了保持个人电脑的安全性,完事之后:
重新启动,按 Command + R,“实用工具 - 终端”,然后:
$ csrutil enable;