Python 版本管理

5,347 阅读3分钟

由于 Python 拥有众多的版本,以及不同模块也有不同的版本。同一模块不同版本有时需要的 Python 版本是不相同的,所以 Python 的版本控制显得尤为重要。

目前,常用的有以下三种工具进行 Python 版本管理:

virtualenv

virtualenv 用来为一个应用创建一套“隔离”的 Python 运行环境。

Install

pip3 install virtualenv

Create virtualenv

 # 创建一个名为ENV的目录 参数--no-site-packages 不复制已经安装到系统Python环境中的第三方包
virtualenv --no-site-packages ENV 

Activate virtualenv

source ENV/bin/activate

Exit virtualenv

deactivate

pyenv

pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments

pyenv项目是参考 rbenvruby-build 演变过来的。

Install

$ brew update
$ brew install pyenv

Common command

使用 pyenv commands 显示所有可用命令

pyenv versions # 查看本机安装版本
pyenv --version # 查看当前版本
pyenv install -l # 查看可安装 Python 版本
pyenv install 3.6.8 # 安装 python 3.6.8 版本
pyenv uninstall 3.6.8 # 卸载 python 3.6.8 版本

# python 版本切换 shell > local > global
pyenv global 3.6.8 # 设置全局的 Python 版本,版本号写入 ~/.pyenv/version 文件
pyenv local 3.6.8 # 设置 Python 本地版本,版本号写入当前目录下 .python-version 文件

pyenv-virtualenv

pyenv 插件:pyenv-virtualenv

Install

brew install pyenv-virtualenv

Create virtualenv

# 指定 Python 版本创建 virtualenv
pyenv virtualenv 2.7.10 my-virtual-env-2.7.10

# 当前 Python 版本创建 virtualenv
pyenv virtualenv venv34

List existing virtualenvs

pyenv shell venv34
pyenv virtualenvs

Activate virtualenv

pyenv activate <name>
pyenv deactivate

Delete existing virtualenv

# 删除 virtualenv 工作目录,或者运行以下方式
pyenv uninstall my-virtual-env
pyenv virtualenv-delete my-virtual-env

Anaconda

Anaconda 在英文中是“蟒蛇”,包管理器和环境管理器。Anaconda 附带了一大批常用数据科学包,附带了condanumpyscipyPython 在内的超过180个科学包及其依赖项。

Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的,拥有1,000+开源库(若不必要使用1,000多个库,那么可以考虑安装 Miniconda), Jupyter notebook 可以将数据分析的代码、图像和文档全部组合到一个web文档中

Install

Anaconda 可用于多个平台( Windows、Mac OS X 和 Linux)。可以在下面地址上找到安装程序和安装说明,根据你的操作系统是32位还是64位选择对应的版本下载。

官网地址:www.anaconda.com/distributio…

# 卸载 anaconda3
rm -rf ~/anaconda3

Common command

# 更新conda至最新版本
conda update conda

# 查看 conda 安装版本
conda --version 
conda -V

# 列出环境
conda env list
conda info -e
conda info --envs

# 当前环境中安装包
conda install <package_name>

# 指定环境中安装包
conda install --name <env_name> <package_name>

# 更新所有包
conda update --all
conda upgrade --all

# 更新指定包
conda update <package_name>
conda upgrade <package_name>

# 卸载当前环境中的包
conda remove <package_name>

# 卸载指定环境中的包
conda remove --name <env_name> <package_name>

conda install 无法进行安装时,可以使用pip进行安装。

pip只是包管理器,无法对环境进行管理,需先切换到指定环境,再使用pip命令安装包。pip无法更新Python,因为pip并不将 Python 视为包

Create env

conda create --name <env_name> <package_names>
# 例 创建环境名称为py3,并安装最新版本的Python3
conda create -n py3 python=3 

Activate env

conda activate <env_name> 

'source activate' is deprecated. Use 'conda activate'

Exit env

conda deactivate

'source deactivate' is deprecated. Use 'conda deactivate'

Share env

# save environment
conda env export > /path/to/environment.yaml

# update environment
conda env update -f=/path/to/environment.yml

# install environment
pip install -r /path/to/environment.yml

Remove env

conda remove --name <env_name> --all

Other Resources

Virtualenv Document

Jupyter Notebook

Anaconda

[jupyter notebook 可以做哪些事情?