linux系統升級python版本看起來復雜,如果知道其中步驟也不會覺得很困難。下面記錄在deepin系統 15.11和ubuntu16.04系統下將python從2.7升級到3.8過程
升級python版本到3.8
使用普通用戶完成以下操作:
更新源
sudo apt update
下載必要軟件
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev
下載python源碼包
curl -O https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tar.xz
如果官方文件下載過慢,可以下載國內同步的的python源碼。如去華為的python源碼下載地址:
https://mirrors.huaweicloud.com/python/
解壓
tar -xf Python-3.8.7.tar.xz
cd Python-3.8.7
編譯生成make文件。
這里一定要帶上編譯參數--with-ssl,該參數是編譯python是加入SSL,如果沒有在使用pip3時會報錯SSL有問題
./configure --with-ssl
make
make
安裝
altinstall 的意思是不覆蓋原來系統中的python版本。如果覆蓋會出現終端打不開等一些問題。
sudo make altinstall
將默認python3替換成更新的
which python3.8
rm -rf /usr/bin/python3
sudo ln -s /usr/local/bin/python3.8 /usr/bin/python3
將pip3更換成最新
這一步不同的系統會有不同。有些系統沒有pip3,直接使用即可。
which pip3.8
rm -rf /usr/bin/pip3
sudo ln -s /usr/local/bin/pip3.8 /usr/bin/pip3
報錯 lsb_release 找不到
如果在使用python虛擬環境時報錯 lsb_release 找不到
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
全局搜索 lsb_release ,找到之后然后刪除
安裝虛擬環境
安裝兩個虛擬環境的包,順序不可亂
pip3 install virtualenv
pip3 install virtualenvwrapper
配置環境變量
找到虛擬環境的管理腳本路徑,配置環境變量需要
編輯文件 vim ~/.bashrc
find / -name virtualenvwrapper.sh
>> /home/vagrant/.local/bin/virtualenvwrapper.sh
不同系統文件的位置不同,以實際為准
初始化環境變量,編輯文件~/.bashrc
export virtualenvwrapper_python=/usr/bin/python3
export workon_home=$home/.virtualenvs
source /home/vagrant/.local/bin/virtualenvwrapper.sh
source ~/.bashrc
新建虛擬環境
mkvirtualenv -p python3 python3.8
進入虛擬環境
workon python3.8
