一、起因
最近在學習《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一個新項目:
在安裝的過程中主要回碰到如下幾個坑:
2、坑1:Missing dependencies for SOCKS support.
如下圖的報錯:
其實這個還是因為是代理的關系啦,雖然我們設置了代理,但在沒有安裝 pysocks 時。Python 本身並不支持 socks5 代理,而環境變量中則設置了 socks5 的代理。
解決方案:
unset all_proxy && unset ALL_PROXY
pip install pysocks
結果
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、系統有無代理:
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))
如果輸出:
則表示安裝完成
以上.