Python多环境扩展管理
Python发展至今,版本众多,在使用过程中经常遇到第三方库依赖的Python版本和系统Python版本不一致的情况。同时又因系统底层需调用当前版本Python,所以不能随意变更当前系统Python版本。如此情境下就会有Python多版本共存的情况。于是,Python多环境管理工具应运而生。Pyenv和Virtualenv均为Python管理工具,不同的是,Pyenv是对python的版本进行管理,实现不同版本之间的切换和使用;而Virtualenv则通过创建虚拟环境,实现与系统环境以及其他python环境的隔离,避免相互干扰。
1、Pyenv的部署和使用
Pyenv是一个简单的python版本管理工具,以前叫做Pythonbrew。它让你能够方便地切换全局python版本,安装多个不同的python版本,设置独立的某个文件夹或者工程目录特异的python版本,同时创建python虚拟环境(virtualenv's)。所有这些操作均可以在类Unix系统的机器上(Linux和OS X)不需要依赖python本身执行,而且它工作在用户层,不需要任何sudo操作。
(1)部署
pyenv作为python的版本管理工具,通过改变shell的环境变量来切换不同的python版本,以达到多版本共存的目的。该工具不支持windows系统。具体工作原理如下:
接下来开始部署pyenv
# git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
# exec "$SHELL"
若只有系统一个python版本,执行pyenv versions会显示:
若系统里有多个python版本,执行pyenv versions会显示:
实践操作:
system显示的是2.7.5版本,要再切回来的话执行:pyenv global system 而不是pyenv global 2.7.5
2、Virtualenv的部署与使用
virtual是底层基于python开发的python环境隔离工具,其通过虚拟目录的方式来实现多环境并存。工作原理如下:在你所需要的地方创建工作目录,该目录类似系统安装的python目录,保留完整的python环境、解释器、标准库和第三方库等,当我们需要的时候,切换环境变量激活即可使用。
安装pip:
yum -y install python-pip python-devel
实践操作:
[root@localhost ~]# virtualenv /data/datafile/software/virtualpy # 创建虚拟工作目录
New python executable in /data/datafile/software/virtualpy/bin/python2
Also creating executable in /data/datafile/software/virtualpy/bin/python
Installing setuptools, pip, wheel...done.
[root@localhost ~]# source /data/datafile/software/virtualpy/bin/activate # 切换并激活虚拟工作环境
(virtualpy) [root@localhost ~]# deactivate # 退出虚拟工作目录
[root@localhost ~]#