ubuntu18.04 安装指定版本的tensorflow

一、起因

​ 最近在学习《TensorFlow实战Google深度学习框架(第2版)》和《21个项目玩转深度学习 基于TensorFlow的实践详解》中发现,两本书所使用的tensorflow的版本都是1.4.0,然而通过pip或者pycharm安装的tensorflow都还是1.14.0,所以我选择自己来安装一下tensorflow1.4.0

二、环境

名称 版本
ubuntu 18.04
python 3.6
pycharm 2019.2

三、安装踩坑

其实使用pip安装非常简单,只要:

pip install tensorflow==1.4.0

但是呢,因为各种各样的原因,这里面有各种各样的坑,所以我推荐根据我的下面的步骤一点点来:


1、创建虚拟环境

在这里,我们使用virtualenv,所以:

export all_proxy="https://127.0.0.1:1080/"	#因为众所周知的原因,我们需要设置代理
virtualenv --no-site-packages -p python3.6 ./venv #利用python3.6创建虚拟环境
#会在Installinng steuptools, pip, wheel...卡一会儿,不过很快就能done.

当 virtualenv 处于有效状态时,shell 提示符带有 (venv) 前缀。

激活虚拟环境并安装tensorflow1.4.0:

cd venv/bin
source activate
pip3 install tensorflow==1.4.0
deactivate	#安装完毕即可退出虚拟环境

最后按如下配置在pycharm中open一个新项目:

2019-09-04 16-14-13 的屏幕截图

在安装的过程中主要回碰到如下几个坑:

2、坑1:Missing dependencies for SOCKS support.

如下图的报错: 2019-09-04 15-00-54 的屏幕截图

其实这个还是因为是代理的关系啦,虽然我们设置了代理,但在没有安装 pysocks 时。Python 本身并不支持 socks5 代理,而环境变量中则设置了 socks5 的代理。

解决方案:

unset all_proxy && unset ALL_PROXY 
pip install pysocks

结果

2019-09-04 15-04-08 的屏幕截图

3、ImportError: cannot import name main

这是因为pip更新为10.0.0.0之后函数所有变动造成这个问题

解决方案:

sudo vim /usr/bin/pip

将原来的:

from pip import main
if __name__ == '__main__':
    sys.exit(main())

修改成:

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

4、坑3:Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken

报错:Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fef2a8f8320>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /simple/setuptools/

这个主要问题应该还是pip它不走代理,解决方案见下面的(四、总结-4.pip国内镜像)

四、总结

这里很多的坑还是在于走不走代理的问题——系统有代理吗?终端走代理吗?pip走代理吗?pip使用的是国内镜像吗?

1、系统有无代理:

2019-09-04 15-58-59 的屏幕截图

2、终端走代理吗?

如果要临时走一下代理,可以这么设置:

export http_proxy=http://127.0.0.1:8080
export https_proxy=http://127.0.0.1:8080
export all_proxy="https://127.0.0.1:1080/"

3、pip走代理吗?pip似乎只走http/https代理,所以在终端中设置了代理是无效的,还是使用国内镜像比较靠谱

4、pip走国内镜像:

在此用户home目录下,新建一个隐藏文件夹.pip,并新建一个设置文件pip.conf,即:

cd ~
mkdir .pip
ck .pip
vim pip.conf

并输入以下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

五、测试:

在pycharm中新建文件并输出:

import tensorflow as tf
a = tf.constant(1.0)
b = tf.constant(2.0)
with tf.Session() as sess:
    print(sess.run(a+b))

如果输出:

2019-09-04 16-25-16 的屏幕截图
则表示安装完成

以上.

posted @ 2019-09-04 16:27  明卿册  阅读(7862)  评论(0编辑  收藏  举报