使用pyenv实现python多版本管理
pyenv
是一个python
版本管理工具, 可以方便的管理多个python
版本.
对于开发者来说有的时候会有多个python
版本的需求.
例如, 有的项目需要python3.6
, 有的项目需要python3.7
. 这个时候就需要使用pyenv
来管理多个python
版本.
目前市面上有很多python
版本管理工具, 例如pyenv
, conda
等.
pyenv
是一个轻量级的工具, 但是功能也很强大, 适合于开发者使用.
下面将以python3.11.0
为例介绍如何使用pyenv
来管理多个python
版本
解决方案
将github
上的pyenv
仓库clone
到本地
git clone git@github.com:pyenv/pyenv.git
配置~/.bashrc
将以下配置添加到~/.bashrc
, 注意将<pyenv-path>
替换为pyenv
的实际路径
# pyenv
export PATH=<pyenv-path>/bin:$PATH
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv deactivate
使~/.bashrc
中的配置生效
重新加载~/.bashrc
, 这么做是为了让pyenv
的配置生效
source ~/.bashrc
下载python
安装包到cache
目录以加快安装速度
使用pyenv
安装python
时会比较慢, 这是因为访问国外网站会比较慢.
可以先将python
的安装包下载到刚才clone
的项目的cache
目录下.
通过下载器例如迅雷
可以更快的下载.
后续使用pyenv
进行install
时会从cache
目录下读取安装包, 速度会快很多
以3.11.0
为例, 下载地址为: https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz
可以进入https://www.python.org/ftp/python/
查看所有python
版本的安装包下载地址.
安装必要的依赖
使用pyenv
安装python
时, 需要安装一些依赖, 否则安装时会报错.
通常这些依赖的前缀为lib***-dev
.
以下是我以前安装python
时遇到的依赖, 各个版本可能不一样, 请根据实际情况安装.
for package in libncurses-dev build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev; do
apt-get install -y $package
done
pyenv install 3.11.0
创建virtualenv
, 名称为python3.11.0
pyenv virtualenv 3.11.0 python3.11.0
pyenv activate 3.11.0/envs/python3.11.0
追加pyenv activate
到~/.bashrc
将以下配置添加到~/.bashrc
, 这样做的目的是为了每次打开terminal
时自动激活virtualenv
.
pyenv activate python3.11.0
备注
常用命令
- 安装特定版本的python
pyenv install <python-version>
- 创建虚拟环境
pyenv virtualenv <python-version> <virtualenv-name>
- 列出所有虚拟环境
pyenv virtualenvs
- 使用虚拟环境
pyenv activate <python-version>/envs/<virtualenv-name>
- 解除虚拟环境
pyenv deactivate