Python项目开发的时候,不同项目用到的Python版本不一样或用到的依赖包不一样。这时候需要做开发环境隔离,给每个项目一个单独的python开发环境。一般用 pyenv 配合 pyenv-virtualenv 插件使用,可以实现Python多开发环境的隔离。
安装
pyenv
pyenv可以用git克隆安装,也可以下载zip后解压安装。下载zip包解压安装
1 | $ wget https://github.com/pyenv/pyenv/archive/v1.2.7.tar.gz |
pyenv安装完成,用pyenv install --list
命令查看提供可安装的python版本
1 | $ pyenv install --list |
Python
安装或更新python所需依赖
1 | $ yum install zlib-devel bzip2-devel openssl-devel ncurses-devel \ |
比如安装2.7.15版本的python
1 | $ pyenv install 2.7.15 -v |
为所有已安装的可执行文件创建shims
,如:~/.pyenv/versions/*/bin/*
,因此,每当增删了Python版本或带有可执行文件的包(例如celery, uwsgi, pip
)以后,都应该执行一次该命令
1 | $ pyenv rehash |
查看当前已安装python的版本
1 | $ pyenv versions |
设置系统全局python版本为2.7.15
1 | $ pyenv global 2.7.15 |
优先级
pyenv优先级顺序shell > local > global
global
全局Python版本,通过命令pyenv global
设置,手动将版本号写入~/.pyenv/version
也可以。作用范围是系统。local
本地的Python版本,通过命令pyenv local
设置,手动将版本号写入当前目录下的.python-version
也可以。作用范围是当前目录,优先级较global高。shell
当前终端的Python版本,通过命令pyenv local
设置,手动定义当前终端的PYENV_VERSION
环境变量也可以。作用范围是当前终端,优先级比local和global都要高。
pyenv-virtualenv
采用git安装
1 | $ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv |
环境隔离
创建隔离环境命令格式
1 | $ pyenv virtualenv Pyhton版本 环境名称 |
例如,创建一个隔离环境devtest
,Python版本2.7.15
1 | $ pyenv virtualenv 2.7.15 devtest |
切换到环境devtest,用pip list
可以看到新的环境安装包只有pip、setuptools、wheel
。这是一个干净的环境,可以开始一个新的Python项目开发。
1 | $ pyenv activate devtest |
退出当前环境
1 | $ pyenv deactivate |
列出所有的环境
1 | $ pyenv virtualenvs |
删除环境devtest
1 | $ pyenv virtualenv-delete devtest |