进入正题,环境安装。Python开发必备神器: virtualenvLinux、Mac下都默认自带了Python2.7,因此不再讲Python2.7的安装,你可以输入python -V查看已安装的版本。
因为python、Tensorflow版本众多,很有可能你今天用了python2.7、Tensorflow1.1,明天另一个项目又要用3.6、1.2,怎么办;或者你今天写的代码,明天更新系统,Tensorflow也跟着更新了,报错了,多难受。因此,我们需要一个虚拟环境管理工具,virtualenv,它可以为你的每个项目建立彼此独立的Python运行环境。
第一步,使用easy_install安装pip sudo easy_install pip
然后使用pip工具来安装virtualenv sudo pip install virtualenv
第二步,新建项目环境
命令virtualenv可以新建一个独立的Python运行环境,我们将其命名为env,注意到我们加了参数--no-site-packages,这样已经安装到系统中的任何第三方包都不会复制过来,我们就得到了一个干净的Python运行环境
mkdir tensorflow_project
cd tensorflow_project
virtualenv env --no-site-packages
你将会看到tensorflow_project目录下多了一个env文件夹,这里存放着我们新建的Python运行环境。第三步,激活项目环境 source env/bin/activate
注意到,此时提示符变成了env,提示我们已经处于虚拟环境中,正常使用pip进行安装即可,此时将不再需要sudo,因为所有包都将被安装到env目录下,对系统无影响。
如果你要退出虚拟环境,输入deactivate即可,同样注意提示符的变化,此后再做的操作都将是对系统默认环境的改变。安装Tensorflow因为tensorfow仍在持续开发中,目前最新版本为1.4(2017.12),新的版本api会有修改,这里,我们使用stanford大学CS20SI课程使用的版本1.2.1,顺便推荐下,这门课程很适合作为Tensorflow的入门课程。
将以下内容保存为requirements.txt
tensorflow==1.2.1
scipy==0.19.1
scikit-learn==0.18.2
matplotlib==2.0.2
xlrd==1.0.0
ipdb==0.10.1
Pillow==4.2.1
lxml==3.8.0我们没必要一个个包手动去安装,上面的包列表是经过验证可以正常组合工作的,因此,我们直接安装它们。使用pip -r参数从文件中读取包列表并进行安装
source env/bin/activate
pip install -r requirements.txt安装成功后,我们可以输入pip freeze查看已经安装的包列表
简单运行tensorflow的小例子进行测试下
import tensorflow as tf
a = tf.constant(2)
b = tf.constant(3)
x = tf.add(a, b)
with tf.Session() as sess:
print(sess.run(x)) #5
备注*踩坑好麻烦。。。我也觉得。。。那使用在线的tensorflow环境吧 https://cocalc.com/mac加上sudo后还是提示permission deniedEl Capitan引入了SIP机制(System Integrity Protection),默认下系统启用SIP系统完整性保护机制,无论是对于硬盘还是运行时的进程限制对系统目录的写操作
现在的解决办法是取消SIP机制,具体做法是:
重启电脑,按住Command+R(直到出现苹果标志)进入Recovery Mode(恢复模式)
左上角菜单里找到实用工具 -> 终端
输入csrutil disable回车
重启Mac即可
如果想重新启动SIP机制重复上述步骤改用csrutil enable即可matplotlib报错:
error: Python is not installed as a framework添加~/.matplotlib/matplotlibrc文件,内容为:backend: TkAgg echo 'backend: TkAgg' >> ~/.matplotlib/matplotlibrc
或者,在代码中显式调用
import matplotlib
matplotlib.use("TkAgg")Tensorflow提示gpu编译信息,以下代码可隐藏
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'virtualenv sublimerepl经实测,在ubuntu下先激活虚拟环境从终端打开sublime即可使用sublimerepl调用虚拟环境
但macOS下却不行,可以在settings文件里显式设置python环境
vim sublimerepl-settings-user
{"default_extend_env": {"PATH": "/Users/lixiang/tensorflow/env/bin:{PATH}" }}