一個bug:python version 3.5 doesn't support a 'F' prefix,引發的一場血案
應代碼需要更新python版本為3.6以上,于是正常操作:
1.wget擷取安裝包:
wget http://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
2.解壓安裝包:
tar -xvzf Python-3.6.2.tgz
3.檢查安裝平台屬性,系統是否有編譯時所需要額庫,以及庫的版本是否滿足編譯需要
./configure
4.編譯源碼
make
5.成功編譯之後,安裝
sudo make install
這時候python的版本還是3.5,需要修改/usr/bin/python 的軟連接配接,
1.重命名原來的python軟連接配接,萬一更新不成功,python3.5的環境還能還原,不要折了芝麻又丢了谷子
mv /usr/bin/python /usr/bin/python_old
2.建立新連結,我的python3.6.2的預設連結在/usr/local/bin/python3.6,
ln -s /usr/local/bin/python3.6 /usr/bin/python
再次檢視python版本為:3.6.2,開不開心,
使用pip指令時,報錯了,意不意外:
ModuleNotFoundError: No module named 'pip._internal'
這裡安裝pip指令,
1. wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
2. python get-pip.py
突然報錯:"Can't connect to HTTPS URL because the SSL module is not available."
幾個意思啊,進入python2.7環境:import ssl,沒有報錯,
進入python3.6.2環境,import ssl報錯:ModuleNotFoundError: No module named '_ssl',說明ssl現在隻能python2的環境用
别怕,哥最不缺的就是辦法,解決辦法是重新對python3.6進行編譯安裝,用以下過程來實作編譯安裝:
1. cd Python-3.6.2
2. make clean
3. ./configure --with-ssl
4. make
5. sudo make install
這樣就允許安裝的python3使用ssl功能子產品,進入python3中,執行import ssl發現未出錯,再次調用pip指令來安裝numpy,發現正常,問題解決