目录
pyenv简介
pyenv用于安装、切换和管理不同版本的 Python,确保项目在正确的 Python 环境中运行
- 安装多个 Python 版本: 轻松切换版本
- 虚拟环境管理(与 pyenv-virtualenv 插件结合): 管理虚拟环境,为每个项目提供隔离的依赖环境
- 避免修改系统 Python: 避免系统问题,例如yum无法正常使用等
安装pyenv依赖包
# ubuntu
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev \
python-openssl git make
#centos,redhat,kylin,rocky
yum -y install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel git make --nogpgcheck
安装pyenv
# 下载并且重命为 .pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
#ubuntu
#配置pyenv环境变量
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
#centos,redhat,kylin,rocky
#配置pyenv环境变量
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'if command -v pyenv 1>/dev/null 2>&1; then' >> ~/.bashrc
echo ' eval "$(pyenv init --path)"' >> ~/.bashrc
echo ' eval "$(pyenv init -)"' >> ~/.bashrc
echo 'fi' >> ~/.bashrc
source .bashrc
查看操作
# 查看当前版本
pyenv version
# 查看所有版本
pyenv versions
安装python操作
查看版本,可以参考华为云镜像官网
#指定国内镜像加速源
export v=3.6.8
wget https://mirrors.huaweicloud.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/
export v=3.6.5
wget https://mirrors.huaweicloud.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/
export v=2.7.8
wget https://mirrors.huaweicloud.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/
export v=3.12.0
wget https://mirrors.huaweicloud.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/
# 查看所有可安装的版本
pyenv install --list
# 安装指定版本
pyenv install 3.6.5
pyenv install 2.7.8
pyenv install 3.12.0
# 安装新版本后rehash一下
pyenv rehash
# 删除指定版本
pyenv uninstall 3.5.2
# 指定全局版本
pyenv global 3.6.5
# 指定多个全局版本, 3版本优先
pyenv global 3.6.5 2.7.14
# 实际上当你切换版本后, 相应的pip和包仓库都是会自动切换过去的
pyenv-virtualenv
git clone http://github.com/yyuu/pyenv-virtualenv.git ./.pyenv/plugins/pyenv-virtualenv
cd ./.pyenv/plugins/pyenv-virtualenv
./install.sh
设置参数
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc
下载指定版本代码
#克隆指定版本的代码
git clone --branch v1.1 --depth 1 https://github.com/ansible/ansible.git ansible1.1
git clone --branch v2.9.8 --depth 1 https://github.com/ansible/ansible.git ansible2.9.8
虚拟环境操作
#pyenv virtualenv python版本 虚拟环境名称
pyenv virtualenv 2.7.18 ansible-1.1
pyenv virtualenv 3.6.5 ansible-2.9.8
#进入虚拟环境
pyenv activate ansible-1.1
#退出虚拟环境
pyenv deactivate
#查看虚拟环境
pyenv virtualenvs
#删除虚拟环境
pyenv virtualenv-delete ansible-1.1
#进入虚拟环境,安装对应版本的anisble
pyenv activate ansible-2.9.8
#安装对应版本的ansible
pip3.6 install --upgrade pip
pip3.6 install setuptools_rust
pip3.6 install ansible==2.9.8
pyenv activate ansible-1.1
pip2.7 install ansible==1.1
退出会话,再重新登录,进入虚拟环境,能查看到ansible版本号,具体原因未明确
这里有一个bug,在虚拟环境ansible-1.1中安装了ansible==1.1版本中后 进入虚拟环境ansible-2.9.8,安装ansible==2.9.8 进入虚拟环境ansible-1.1,发现ansible无法使用
解决办法:在ansible-1.1虚拟环境中,pip2.7 install ansible==1.1,会发现有一些安装包的更新,再使用ansible命令,即正常了