前言
python 版本比較多,2 和 3 相差非常大皇忿,很多項(xiàng)目需要跑在同一臺(tái)服務(wù)器上谴仙,那就必須有隔離環(huán)境烧栋。比如有的項(xiàng)目使用 python 3.5,有的項(xiàng)目使用 python 3.7缎浇,此時(shí)我們可以借助 pyenv 幫助我們完美的隔離環(huán)境,讓多個(gè)版本的 python 沒有任何沖突,完美共存陨帆。
環(huán)境準(zhǔn)備
安裝環(huán)境
1. 安裝git
ubuntu安裝:
sudo apt-get install git
centos安裝:
sudo yum install git
2. 安裝pyenv
安裝pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
配置環(huán)境變量
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
$ exec $SHELL
3. 安裝 pyenv-virtualenv
安裝 pyenv-virtualenv
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
配置環(huán)境變量
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ exec $SHELL
使用pyenv管理版本
列出所有能安裝的版本
pyenv install --list
-
安裝python指定版本
pyenv install 3.7.3
說(shuō)明:如果安裝python時(shí)提示Build failed,參考https://github.com/pyenv/pyenv/wiki
ubuntu執(zhí)行以下命令$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev \ libxml2-dev libxmlsec1-dev libffi-dev
CentOS執(zhí)行以下命令
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel
列出pyenv可用的所有Python版本
pyenv versions
設(shè)置全局python版本
pyenv global 3.7.3
設(shè)置當(dāng)前工作目錄的特定python版本
pyenv local 3.7.3
查看當(dāng)前正在使用的版本
pyenv version
查看python安裝路徑
pyenv which python
為pyenv(即采蚀,~/.pyenv/versions//bin/)已知的所有Python二進(jìn)制文件安裝填充程序 疲牵。在安裝新版本的Python之后運(yùn)行此命令,或安裝提供二進(jìn)制文件的軟件包榆鼠。
pyenv rehash
創(chuàng)建虛擬環(huán)境
- 創(chuàng)建一個(gè)虛擬環(huán)境纲爸,執(zhí)行以下命令:
pyenv virtualenv 3.7.3 env_demo(虛擬環(huán)境名稱)
$ pyenv virtualenv 3.7.3 env_demo
Looking in links: /tmp/tmpkn_yl6dx
Requirement already satisfied: setuptools in /home/test/projects/pyenv/versions/3.7.3/envs/env_demo/lib/python3.7/site- packages (40.8.0)
Requirement already satisfied: pip in /home/test/projects/pyenv/versions/3.7.3/envs/env_demo/lib/python3.7/site- packages (19.0.3)
類似這樣即創(chuàng)建成功
- 激活虛擬環(huán)境
pyenv activate env_demo
你會(huì)發(fā)現(xiàn),在你的終端里面璧眠,多了一個(gè)類似于 (env-demo)即激活成功
- 退出虛擬環(huán)境
pyenv deactivate
使用python3自帶的虛擬環(huán)境venv
- 創(chuàng)建虛擬環(huán)境
$ python -m venv /tem/venv_demo
- 激活該虛擬環(huán)境
$ cd /tem/venv_demo/bin # 進(jìn)入虛擬環(huán)境所在路徑
$ source activate # 激活虛擬環(huán)境
$ deactivate # 退出虛擬環(huán)境