转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/6592052.html

参考网址:

https://www.tensorflow.org/install/install_linux#InstallingAnaconda(需跨越绝境长城)

http://mbless.de/blog/2016/01/09/upgrade-to-python-2711-on-ubuntu-1404-lts.html

http://stackoverflow.com/questions/32856389/how-to-import-ssl-in-python-2-7-6

https://blog.liyang.io/301.html

http://stackoverflow.com/questions/8565695/error-compiling-gcc-4-6-2-under-ubuntu-11-10

http://stackoverflow.com/questions/33622842/error-in-python-after-import-tensorflow-typeerror-init-got-an-unexpect

http://stackoverflow.com/questions/35896335/how-can-i-uninstall-protobuf-3-0-0

https://github.com/tensorflow/tensorflow/issues/11

说明:本文不涉及手动编译tensorflow

注:ubuntu中使用conda安装tensorflow-gpu,网址:

https://www.cnblogs.com/darkknightzh/p/9834567.html

更新python

说明:python版本最好高一些,这边再ubuntu16.04上面直接安装成功,python版本为2.7.12;在ubuntu14.04上面安装失败,python版本为2.7.6,会提示snimissingwarning。

更新python版本:http://mbless.de/blog/2016/01/09/upgrade-to-python-2711-on-ubuntu-1404-lts.html

wget  https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
tar xfz Python-2.7..tgz
cd Python-2.7./
./configure --prefix /usr/local/lib/python2.7.13
make
sudo make install

说明:1. 默认的话,python是不支持ssl的,http://stackoverflow.com/questions/32856389/how-to-import-ssl-in-python-2-7-6林家访指出,修改Modules/Setup.dist文件(针对2.7.13,取消注释214,218,219,220,221行),则可以正常的sudo pip install了。

2. 由于没有建立链接,此时系统默认的python版本还是原来的。建立链接(http://www.jb51.net/article/94266.htm):

sudo mv /usr/bin/python /usr/bin/python2.7.6
sudo ln -fs /usr/local/lib/python2.7.13/bin/python /usr/bin/python

如需将python改回默认的2.7.6,终端中输入:

sudo mv /usr/bin/python2.7.6 /usr/bin/python)

之后在终端中输入sudo python --version,便是2.7.13了。

3. 更新python后,由于所有的模块均需要重新安装(略蛋疼,因而最好还是直接使用anaconda之类的吧。不用自己安装很多库。。。),因而首先安装pip。官网说python2.7.9以上的默认安装了pip,但是使用pip时,死活提示No module named pip。。。

按照http://www.cnblogs.com/haython/p/3970426.html中的步骤,终于成功安装pip

a 安装easy_install:https://pypi.python.org/pypi/ez_setup,解压、sudo python ez_setup.py

b 安装pip:https://pypi.python.org/pypi/pip,解压、sudo python setup.py install

上面这些是在ubuntu14.04里面遇到的,ubuntu16直接用第二步就行了。。。

安装tensorflow

https://www.tensorflow.org/install/install_linux

a. 如果有的话,卸载tensorflow:

pip uninstall tensorflow_gpu-1.0.-cp27-none-linux_x86_64.whl

或者:

pip uninstall tensorflow_gpu

或者加上sudo

b. cuda版本为8.0(否则可能会提示找不到什么库,记不清了)

1. 更新pip(pip版本比较旧时最好更新)

pip install --upgrade pip

2. 安装wheel(已经安装的略过)

pip install wheel

3. 安装tensorflow

sudo pip install tensorflow-gpu

说明:a. 这条命令会先下载gpu版本的tensorflow,而后再安装。也可以直接下载(如tensorflow_gpu-1.0.1-cp27-none-linux_x86_64.whl),而后在该文件位置打开终端,直接输入

sudo pip install tensorflow_gpu-1.0.-cp27-none-linux_x86_64.whl

b. 如果安装到系统目录,需要使用sudo;如果安装到anaconda之类的目录,不需要使用sudo。

4. 测试:终端中输入python

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant()
>>> b = tf.constant()
>>> sess.run(a+b)

可以正常使用了

可能遇到的问题

1. 如果直接在python中安装,提示找不到glibc_2.23

https://blog.liyang.io/301.html中指出,先下载glibc_2.23,然后编译。

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar -zxvf glibc-2.14.tar.gz && cd glibc-2.14 && mkdir build && cd build
../configure --prefix=/opt/glibc-2.14
make -j4
make install
export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH

若编译的时候提示:

ld_library_path shouldn't contain the current directory when building glibc

http://stackoverflow.com/questions/8565695/error-compiling-gcc-4-6-2-under-ubuntu-11-10hmb指出,

unset LIBRARY_PATH; ./configure

而后可以编译成功。

2. 第一次import tensorflow as tf,若提示下面的错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/xxx/anaconda2/lib/python2.7/site-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import *
File "/home/xxx/anaconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 54, in <module>
from tensorflow.core.framework.graph_pb2 import *
File "/home/ xxx /anaconda2/lib/python2.7/site-packages/tensorflow/core/framework/graph_pb2.py", line 16, in <module>
from tensorflow.core.framework import node_def_pb2 as tensorflow_dot_core_dot_framework_dot_node__def__pb2
File "/home/ xxx /anaconda2/lib/python2.7/site-packages/tensorflow/core/framework/node_def_pb2.py", line 16, in <module>
from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2
File "/home/ xxx /anaconda2/lib/python2.7/site-packages/tensorflow/core/framework/attr_value_pb2.py", line 16, in <module>
from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2
File "/home/ xxx /anaconda2/lib/python2.7/site-packages/tensorflow/core/framework/tensor_pb2.py", line 16, in <module>
from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2
File "/home/ xxx /anaconda2/lib/python2.7/site-packages/tensorflow/core/framework/resource_handle_pb2.py", line 22, in <module>
serialized_pb=_b('\n/tensorflow/core/framework/resource_handle.proto\x12\ntensorflow\"m\n\x0eResourceHandle\x12\x0e\n\x06\x64\x65vice\x18\x01\x01(\t\x12\x11\n\tcontainer\x18\x02\x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x11\n\thash_code\x18\x04\x01(\x04\x12\x17\n\x0fmaybe_type_name\x18\x05 \x01(\tB4\n\x18org.tensorflow.frameworkB\x13ResourceHandleProtoP\x01\xf8\x01\x01\x62\x06proto3')
TypeError: __init__() got an unexpected keyword argument 'syntax'

再次输入后,提示:

>>> import tensorflow as tf
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/xxx/anaconda2/lib/python2.7/site-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import *
File "/home/xxx/anaconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 51, in <module>
from tensorflow.python import pywrap_tensorflow
ImportError: cannot import name pywrap_tensorflow

对于第二个次出现的问题,很多人说是当前工作目录不能在tensorflow的目录内。但是实际上这边没有在该文件夹内。主要还是第一次import的错误没有解决。

第一次的错误,好多网址,如http://stackoverflow.com/questions/33622842/error-in-python-after-import-tensorflow-typeerror-init-got-an-unexpect最佳答案说是电脑上安装了多个版本的protobuf。我这边开始使用sudo pip uninstall protobuf(或者不加sudo),某一次意外的把protobuf2.5卸载了。但是还是有这个问题。

之后http://stackoverflow.com/questions/35896335/how-can-i-uninstall-protobuf-3-0-0最佳答案指出,如果电脑是make安装的protobuf,需要定位到protobuf编译文件夹,使用make uninstall(或者加上sudo)来卸载。通过这种方法卸载后,使用protoc --version时,提示sudo apt-get install protobuf-compiler。说明已经成功卸载。

之后按照中https://github.com/tensorflow/tensorflow/issues/11vrv说的,python中输入

import google.protobuf
print google.protobuf.__version__

输出为3.2.0。说明python中protobuf可以用。

上面网址中liuyipei指出的,终端中输入pip show protobuf,显示:

才意识到,之前曾经安装过protobuf 2.6.1,虽然卸载了2.6.1,但是没有删除2.6.1编译时的文件夹(不清楚为何prptobuf还能使用)。删除了该文件夹之后,顺便把protobuf3.2的安装文件夹也删除了。。。

=========================================================

170322更新:

今天无意中发现(不记得什么时候添加的了。。。),.bashrc文件内,有

export PYTHONPATH=/home/xxx/protobuf-2.6.1/python:$PYTHONPATH

之前找到该文件夹,可能和这个有关系吧。删了这句话。。。

170322更新结束

=========================================================

之后在输入pip show protobuf后,显示为:

再次在python中import tensorflow as tf后,终于成功了。运行官方最简单的例子,也能成功。

不清楚把系统的protobuf给删了,重启会不会有问题吧。。。以前删过自己电脑上的protobuf,貌似进不去系统了。。。

(原)ubuntu中安装tensorflow的更多相关文章

  1. (原)ubuntu中安装kate

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6339642.html 参考网址: https://kate-editor.org/build-it/# ...

  2. 在 Ubuntu 上安装 TensorFlow (官方文档的翻译)

    本指南介绍了如何在 Ubuntu 上安装 TensorFlow.这些指令也可能对其他 Linux 变体起作用, 但是我们只在Ubuntu 14.04 或更高版本上测试了(我们只支持)  这些指令. 一 ...

  3. 转】在Ubuntu中安装Redis

    不多说,直接上干货! 原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/ 感谢! 在Ubuntu中安装Redis R利剑 ...

  4. 转】在Ubuntu中安装Cassandra

    原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/ 感谢! Posted: Mar 22, 2014 Tags: cas ...

  5. 【转】在Ubuntu中安装HBase

    原博客出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/ 感谢! Posted: Apr 3, 2014 Tags: Hado ...

  6. 在ubuntu中安装maven

    安装环境 操作系统:ubuntu 14.04.1 server amd64 安装jdk 在安装maven之前,必须确保已经安装过jdk. 安装jdk的方法请参考文章<在ubuntu中安装jdk& ...

  7. 在Ubuntu中安装Redis

    原文地址:http://blog.fens.me/linux-redis-install/ 在Ubuntu中安装Redis R利剑NoSQL系列文章,主要介绍通过R语言连接使用nosql数据库.涉及的 ...

  8. ubuntu中安装Docker

    系统要求: 必须时64位的系统,内核最低要求是3.10 查看系统内核: $ uname -r 3.11.0-15-generic 获取最新版本打Docker: $ wget -qO- https:// ...

  9. 如何在ubuntu中安装php

    如何在ubuntu中安装php 情衅 | 浏览 692 次 发布于2016-05-07 12:36   最佳答案   关于Ubuntu下的LAMP配置步骤: 首先要安装LAMP 就是Apache,PH ...

随机推荐

  1. Asp.net WebAPi gzip压缩和json格式化

    现在webapi越来越流行了,很多时候它都用来做接口返回json格式的数据,webapi原本是根据客户端的类型动态序列化为json和xml的,但实际很多时候我们都是序列化为json的,所以webapi ...

  2. Text Justification leetcode java

    题目: Given an array of words and a length L, format the text such that each line has exactly L charac ...

  3. 说说最易被忽略的CSS强制性换行

    一般情况下,元素拥有默认的white-space:normal(自动换行,PS:不换行是white-space:nowrap),当录入的文字超过定义的宽度后会自动换行,但当录入的数据是一堆没有空格的字 ...

  4. GPS精度因子(GDOP,PDOP,HDOP,VDOP,TDOP)

    PDOP:位置精度因子(Position Dilution of Precision),直译为“精度强弱度”,通常翻译为“相对误差”.具体含义是:由于观测成果的好坏与被测量的人造卫星和接收仪间的几何形 ...

  5. 学习世界模型,通向AI的下一步:Yann LeCun在IJCAI 2018上的演讲

    https://baijiahao.baidu.com/s?id=1606296521706399213&wfr=spider&for=pc 机器之心整理,机器之心编辑部. 人工智能顶 ...

  6. wifidog 源码初分析(3)-转

    上一篇分析了 接入设备 在接入路由器,并发起首次 HTTP/80 请求到路由器上时,wifidog 是如何将此 HTTP 请求重定向至 auth-server 的流程. 之后 接入设备 的浏览器接收到 ...

  7. Dapper - .Net 环境下一个简单对象映射的框架

    本文内容 特点 性能 参数化的查询 List 支持 缓存和非缓存的 readers 多个映射 多个结果 存储过程 Ansi Strings 和 varchar 限制和注意事项 Dapper 能运行在我 ...

  8. Office 如何添加Adobe Acrobat虚拟PDF打印机

    在服务中找到Print Spooler服务,如果是停止的点击启动,如果已经启动点击重新启动   在打印机中添加本地打印机   使用现有端口,然后选择Adobe PDF选项,下一步,然后在厂商中选择Ad ...

  9. WPF 之 创建继承自Window 基类的自定义窗口基类

    开发项目时,按照美工的设计其外边框(包括最大化,最小化,关闭等按钮)自然不同于 Window 自身的,但窗口的外边框及窗口移动.最小化等标题栏操作基本都是一样的.所以通过查看资料,可按如下方法创建继承 ...

  10. format ZKFC失败

    at org.apache.hadoop.ha.ActiveStandbyElector$WatcherWithClientRef.waitForZKConnectionEvent(ActiveSta ...