python开发的时候,尤其是多个项目开发的时候,经常会遇到以下两个问题:
- 不同项目使用了不同版本的python
- 不同项目的第三方依赖不一样,例如一个依赖于 xxx-1.0.0,另一个依赖于xxx-1.2.0
为了解决以上问题,需要引入
Python版本管理:在一台机器上实现安装多个版本的python,
Python环境管理:实现对每个项目工程创建虚拟环境实现每个项目不同依赖。
python有众多的版本,不同版本之间支持的特性有差异,而且python2和python3是不向下兼容的,如果做机器学习方面工作又经常会使用anaconda
,而anaconda
则完全实现了自己的包管理。
为了应对这种局面,python出现了很多管理工具,例如:virtualenv、pipenv、pyenv等
pyenv
pyenv用于管理python多版本,例如安装多个版本python,如果使用windows系统则需要使用pyenv-win,pyenv可集成virtual-env插件
基本使用
命令 | 描述 |
---|---|
pyenv --version | 查看 pyenv 的版本 |
pyenv versions | 罗列当前已安装的所有 python 环境,如果是当前正在使用的环境,则前面会有个 * |
pyenv help | 查看帮助 |
pyenv init | 如果输入 pyenv 之后使用 tab 不补全,可以使用该命令进行初始即可使用补全命令 |
安装环境
命令 | 描述 |
---|---|
pyenv install -l | 显示可以安装的版本列表 |
pyenv install 版本号 | 安装指定版本的 python |
pyenv rehash | 更新本地数据库,安装指定版本的 python 后使用 |
环境应用
命令 | 描述 |
---|---|
pyenv global 版本号 | 更改本机版本,重启不会造成再次更改 |
pyenv local 版本号 | 会在当前目录创建 .python-version 文件,并记录设置的 python 环境,每次进入该目录会自动设置成该 python 环境 |
pyenv shell 版本号 | 更改当前 shell 下使用的 python 版本,临时生效,优先级高于 global |
virtualenv
virtualenv是python虚拟环境管理工具,可以为每个项目(对应一个目录)创建独立虚拟环境,不同的虚拟环境可以有不同的依赖库
#创建虚拟环境:
pyenv virtualenv 3.7.0 test # 使用python 3.7.0 版本创建名字为test的虚拟环境
#查看所有虚拟环境
pyenv virtualenvs
#激活虚拟环境
pyenv activate test
#去掉当前环境
pyenv deactivate
pipenv
可以看做是virtualenv的升级
本文主要介绍使用pyenv、virtualenv、anaconda搭建python环境,基本可覆盖绝大多数python开发场景。
conda
#创建环境
conda create --name animatediff python=3.10.6
#创建环境的同时,安装一下包
conda create --name animatediff python=3.10.6 numpy pandas
#克隆已经存在的环境
conda create --name animatediff python=3.10.6--clone <baseEnv>
#激活环境
conda activate animatediff
#查看环境
conda info --envs
#看这个环境下安装的包和版本
conda list
#安装numpy sklearn包
conda install numpy scikit-learn
#删除你的环境
conda env remove -n animatediff
#查看所有的环境
conda env list
#删除环境
conda env remove -n 虚拟环境的名称
venv
venv
是Python的一个标准库,用于创建和管理虚拟环境。
#创建环境,最后一个参数是路径,可以是相对路径,也可以是绝对路径
python3 -m venv .pt2
python -m venv /path/to/new/virtual/environment
#指定目录里的python,这样可以指定python版本
/opt/homebrew/bin/python3.10 -m venv .pt2
#激活环境
source .pt2/bin/activate
/path/to/new/virtual/environment/bin/activate
#退出
deactivate
参考:
Python多版本切换工具-Pyenv\virtualenv及Anaconda科学计算环境的配置_rolin-刘瑞的博客-CSDN博客
使用pyenv/virtualenv/anaconda构建python开发环境