pyenv管理多个版本python环境

要不停的在各个不同版本的 python 环境之间切换,所以想到了pyenv,但是对于这种需要在多个不同版本之间切换的 case,就只能使用 pyenv 了。

env

  • macbook pro 2019(monterey) intel
  • pyenv

1.安装

1.mac brew

# 1.1install
brew install pyenv

# 1.2set env
tee >>~/.zprofile <<-'EOF'

# add pyenv init env
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/shims ]] && export PATH="$PYENV_ROOT/shims:$PATH"
eval "$(pyenv init -)"
EOF

# 1.3refresh env
source ~/.zprofile


# 1.4plugin pyenv-virtualenv
brew install pyenv-virtualenv

tee >>~/.zprofile <<-'EOF'
eval "$(pyenv virtualenv-init -)"
EOF

pyenv可以看到virtualenv插件命令
d9abb59d8a8ba87e600a9816984cc8af.png

2.基于脚本安装

运行下面的命令会自动下载安装

# 2.1execute sh 
$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

# 2.2add env
export PATH="/home/xxx/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

# 2.3source
source  .~/.bashrc

2.使用pyenv管理python版本

# 2.1check
$ pyenv versions
* system (set by /home/kongxx/.pyenv/version)

其中 system 表明是系统安装的包。* 表示当前正在使用的 python 环境。

# 2.2查看当前可以被安装python版本

$ pyenv install -l
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
...
# 2.3安装指定版本的 python

$ pyenv install 2.7.10
Downloading Python-2.7.10.tar.xz...
-> https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
Installing Python-2.7.10...
patching file ./Lib/site.py
Installed Python-2.7.10 to /home/kongxx/.pyenv/versions/2.7.10

$ pyenv install 3.2.1
...
# 2.4安装后查看现在已经安装了python版本

$ pyenv versions
* system (set by /home/kongxx/.pyenv/version)
  2.7.10
  3.2.1
# 2.5使用制定版本python

$ pyenv global 3.2.1
$ python -V
Python 3.2.1
# 2.6使用后查看当前使用python版本

$ pyenv version
3.2.1 (set by /home/kongxx/.pyenv/version)

$ pyenv versions
  system
  2.7.10
* 3.2.1 (set by /home/kongxx/.pyenv/version)

3.使用 pyenv管理virtualenv

使用 python 3.2.1 来创建一个 virtualenv 环境

# 3.1创建一个 virtualenv 环境

$ pyenv virtualenv 3.2.1 myenv

$ pyenv versions
  system
  2.7.10
* 3.2.1 (set by /home/kongxx/.pyenv/version)
  3.2.1/envs/myenv
  myenv
# 3.2激活当前需要使用的 virtualenv
$ pyenv activate myenv

$ pyenv versions
  system
  2.7.10
  3.2.1
  3.2.1/envs/myenv
* myenv (set by PYENV_VERSION environment variable)
# 3.3去除当前需要使用的 virtualenv
$ pyenv deactivate
3.4删除当前需要使用的 virtualenv
$ pyenv virtualenv-delete myenv