【pyenv+venv组合来使用Python虚拟环境的方法】
背景
公司为了省钱,压缩使用anaconda的名额,因此我需要掌握非conda的python虚拟环境工具。
一、pyenv + venv
经过调研实验,我们可以使用pyenv + venv 相结合的方式来勉强实现conda的核心功能:
- 创建虚拟环境,指定版本的python
- 在该虚拟环境安装包。
接下来我们逐步演示操作,就以我mac为例,linux应该差不多,可以问大模型;至于windows,现在都是双系统,用linux来开发吧!
1.1 安装与配置pyenv
默认你已经安装了homebrew并把源改为国内的源,比如清华源、阿里源等。
1.1 安装pyenv
brew install pyenv
1.2 配置pyenv
安装完成后,需要将pyenv 添加到shell的环境变量中,以方便系统能找到Pyenv命令。可以放到.zshrc中,或者我一般会有自己的~/.mx_bashrc来定制一些个性化设置,也可以放到.mx_bashrc里边。
export PYENV_ROOT="$HOME/.pyenv" # 注意,因为我会修改$HOME的值,所以这里的路径 要注意根据实际情况修改
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
1.3 验证安装
执行以下命令来验证pyenv是否安装成功。
pyenv --version
如果输出pyenv的版本号,则表示安装成功。
2. 安装指定版本的Python并使用
2.1 使用pyenv 来安装指定版本的python。
# 以安装3.11版本的python为例,不需要写python=3.11
pyenv install 3.11
2.2 使用该版本
指定使用pyenv下载的某个版本的python
pyenv local 3.11
3. 创建并使用虚拟环境
3.1 创建虚拟环境
注意,使用venv的方式来创建虚拟环境,需要python 3.3版本以上。
虚拟环境要放到一个目录,所以你先在终端进入到预期存放环境的目录里,运行以下指令,会在当前目录下创建一个 your-env-name的文件夹。
python -m venv your-env-name
3.2 激活虚拟环境
在刚创建的虚拟环境夹里找到激活命令并激活。
source your-env-name/bin/activate
3.2 安装包
在安装前,最好切换一下包的源,改为清华源或者阿里源。
3.2.1 更换安装源
- 如果是在安装包时临时使用一下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
- 如果要永久修改当前及以后的虚拟环境的源为清华源
用命令行的方式最常见:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
也可以用手工修改配置文件的方式:
# 在~./pip/pip.conf里编辑,添加内容,如果没有该文件,那么就创建
mkdir -p ~/.pip
vim ~/.pip/pip.conf
在该文件里添加下述内容。
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
3.2.2 安装包
这是后就可以正常用pip 来安装包了
pip install numpy==3.8.1
3.3 复制当前虚拟环境
有时候需要迁移代码,需要把虚拟环境也迁移过去。
# 导出配置
pip freeze > requirements.txt
# 载入配置
pip install -r requirements.txt
4. 退出激活环境
很简单,直接一个deactivate 命令即可。
deactivate
5. 删除虚拟环境
为了节省空间,可以删掉不需要的虚拟环境。很简单,直接删除虚拟环境所在的文件夹即可。
rm -rf your-env-name/