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 的屏幕截圖
則表示安裝完成

以上.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM