Python多环境扩展管理

小柒博客
小柒博客
小柒博客
196
文章
79
评论
2020-03-0316:45:32 1 1,548 2671字阅读8分54秒

众所周知,Python发展至今,版本众多,在使用过程中经常遇到第三方库依赖的Python版本和系统Python版本不一致的情况。同时又因系统底层需调用当前版本Python,所以不能随意变更当前系统Python版本。如此情境下就会有Python多版本共存的情况。于是,Python多环境管理工具应运而生。PyenvVirtualenv均为Python管理工具,不同的是,Pyenv是对python的版本进行管理,实现不同版本之间的切换和使用;而Virtualenv则通过创建虚拟环境,实现与系统环境以及其他python环境的隔离,避免相互干扰。

1、Pyenv的部署和使用

Pyenv是一个简单的python版本管理工具,以前叫做Pythonbrew。它让你能够方便地切换全局python版本,安装多个不同的python版本,设置独立的某个文件夹或者工程目录特异的python版本,同时创建python虚拟环境(virtualenv's)。所有这些操作均可以在类Unix系统的机器上(Linux和OS X)不需要依赖python本身执行,而且它工作在用户层,不需要任何sudo操作。

pyenv作为python的版本管理工具,通过改变shell的环境变量来切换不同的python版本,以达到多版本共存的目的。该工具不支持windows系统。具体工作原理如下:

1、pyenv安装后会在系统PATH变量中插入shims路径,每次执行python相关的可执行文件时,会优先在shims里寻找python路径 ~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin;

2、系统选择python版本,依如下顺序选择python的版本:

1)shell变量设置(执行pyenv shell查看)

2)当前可执行文件目录下的.python_version文件里的版本号(执行pyenv shell查看)

3)上层目录查询找到的第一个.pyenv-version文件

4)全局的版本号在 ~/.pyenv/version文件内(执行pyenv global查看)

3、确定版本文件的位置和python版本后,pyenv会根据 版本号在 ~/,pyenv/versions/文件夹中查找对应的python版本。执行命令 pyenv versions可查看系统目前安装的python版本。

1)部署Pyenv

[root@localhost ~]# git clone git://github.com/yyuu/pyenv.git ~/.pyenv
[root@localhost ~]# echo 'export PYENV_HOME="$HOME/.pyenv"' >> ~/.bashrc
[root@localhost ~]# echo 'export PATH="$PYENV_HOME/bin:$PATH"' >> ~/.bashrc
[root@localhost ~]# echo 'eval "$(pyenv init -)"' >> ~/.bashrc
[root@localhost ~]# source ~/.bashrc
[root@localhost ~]# pyenv versions

若只有系统一个python版本,执行pyenv versions会显示:

[root@localhost ~]# pyenv versions

* system (set by /root/.pyenv/version)

若系统里有多个python版本,执行pyenv versions会显示:

[root@localhost ~]# pyenv versions

* system (set by /root/.pyenv/version)

    3.6.5

2、通过Pyenv管理多Python版本

Pyenv命令使用规则如下:

Usage:pyenv <command> [<args>]

// 查看可安装的版本列表

[root@localhost ~]# pyenv install --list

// 安装指定Python版本

[root@localhost ~]# pyenv install 3.6.6

// 切换当前目录Python版本为3.6.6

[root@localhost ~]# pyenv local 3.6.6

// 切换全局目录Python版本为3.6.6

[root@localhost ~]# pyenv global 3.6.6

// 刷新shims

[root@localhost ~]# pyenv rehash

Pyenv更多用法如下:

命令

功能

commands 列出pyenv的所有可用命令
local 设置或列出当前目录下的python版本号
global 设置或列出全局环境下的python版本号
shell 设置或列出shell环境下的python版本号
install 安装指定的python版本
uninstall 卸载指定的python版本
rehash 重新加载pyenv的shims路径(安装完python版本后需执行该命令)
version 展示当前python版本号及其生效路径
versions 列出pyenv管控的所有可用的python版本
which 列出要使用命令的绝对路径
whence 列出后缀命令的所有可用版本

2、Virtualenv的部署与使用

virtual是底层基于python开发的python环境隔离工具,其通过虚拟目录的方式来实现多环境并存。工作原理如下:在你所需要的地方创建工作目录,该目录类似系统安装的python目录,保留完整的python环境、解释器、标准库和第三方库等,当我们需要的时候,切换环境变量激活即可使用。

1、安装pip

[root@localhost ~]# yum -y install python-pip python-devel

2、安装virtualenv

[root@localhost ~]# pip install virtualenv 

3、通过virtualenv管理多Python版本

virtualenv命令的使用格式如下:

virtualenv [OPTIONS] DEST_DIR

实践操作:

# 创建虚拟工作目录

[root@localhost ~]# virtualenv /data/virtualpy

# 切换并激活虚拟工作环境

[root@localhost ~]# source /data/virtualpy/bin/activate

# 退出虚拟工作目录

(virtualpy) [root@localhost ~]# deactivate

至此,多版本Python环境工具Pyenv和Virtualenv介绍完毕。

继续阅读
  • 微信号
  • 微信扫一扫加我~~
  • weinxin
  • 微信公众号
  • 微信扫一扫关注我吧~~
  • weinxin
广告也精彩
Python 最后更新:2020-3-27
小柒博客
  • 本文由 发表于 2020-03-0316:45:32
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

 

评论:1   其中:访客  1   博主  0
    • 哈哈哈 哈哈哈 0

      写的不错