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 ~]#

Python多环境扩展管理的更多相关文章

  1. window环境下安装 pip 工具 【pip为Python的扩展管理工具】

    Python有一些扩展管理工具,例如easy_install和pip工具,我推荐各位使用pip工具,因为pip工具具有很好的安装和卸载体验. 我们首先需要打开pip的官方网站, 下载必要的文件包,然后 ...

  2. windows下安装python的C扩展编译环境(解决“Unable to find vcvarsall.bat”)

    个人文章除注明转载外,均为个人原创或者翻译. 个人文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本文链接:http://www.cnblogs.com/f ...

  3. Python的支持工具[0] -> 环境包管理工具[1] -> Anaconda

    Anaconda包管理工具 / Anaconda Package Management Tools Anaconda is the world’s most popular Python data s ...

  4. Python—版本和环境的管理工具(Pipenv)

    pipenv简介 虚拟环境本质是一个文件,是为了适应不同的项目而存在.pipenv相当于virtualenv和pip的合体. 整合了 pip+virtualenv+Pipfile,能够自动处理好包的依 ...

  5. pipenv管理python开发环境

    简介 简单说,pipenv就是把pip和virtualenv包装起来的一个便携工具. 它不会在你的项目文件夹里生成一大堆东西,只有两个文本文件: Pipfile, 简明地显示项目环境和依赖包. Pip ...

  6. 翻译:打造基于Sublime Text 3的全能python开发环境

    原文地址:https://realpython.com/blog/python/setting-up-sublime-text-3-for-full-stack-python-development/ ...

  7. python生态环境

    https://docs.python.org/2.7/ 这是文档页 https://docs.python.org/2.7/download.html 2.7的文档下载地址,下载一个包,所有文档就都 ...

  8. Python开发环境的搭建(win7)

    一个.安装和配置Python 事实上,在开发python最好ubuntu环境.简单和易于扩展每个package. 在谈到如何win7建筑物Python开发环境. 因为python十字-platform ...

  9. python服务器环境搭建(2)——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

随机推荐

  1. Problem 13

    Problem 13 # Problem_13 """ Work out the first ten digits of the sum of the following ...

  2. VS2015使用C++编写DLL,并在C#环境中调用【转】

    说明:本文是本人在学习封装DLL时看到的,觉得说得很清楚,为了防止忘记,特意复制下来学习用,原文链接:https://blog.csdn.net/songyi160/article/details/5 ...

  3. spring data JPA使用quartz定时器的具体实现

    第一步.在pom.xml中的配置 <!--quartz--> <dependency> <groupId>org.quartz-scheduler</grou ...

  4. 用2003版的Excel使用“宏”打开NMON软件生产的.nmon文件

    用2003版的Excel使用“宏”打开NMON软件生产的.nmon文件 nmon analyser——生成 AIX 性能报告的免费工具,可从 NMON 的输出中生成大量的报告图形.nmon_analy ...

  5. CF789A. Anastasia and pebbles

    /* CF789A. Anastasia and pebbles http://codeforces.com/contest/789/problem/A 水题 题意:有两个背包,每次分别可取k个物品, ...

  6. [using_microsoft_infopath_2010]Chapter13 SharePoint视图和控制板

    本章概要: 1.规划站点的外观,使用View和web部件 2.为登录进来的用户展示相关的表单. 3.为管理员创建视图 4.从表单中收集到的数据中创建报表

  7. unix关于打包命令zip的使用

    unix zip命令的基本使用方法是: zip [參数] [打包后的文件名称] [打包的文件夹路径] linux zip命令參数列表: -a 将文件转成ASCII模式 -F 尝试修复损坏的压缩文件 - ...

  8. 在C 函数中保存状态:registry、reference和upvalues

    在C函数中保存状态:registry.reference和upvalues      C函数能够通过堆栈来和Lua交换数据,但有时候C函数须要在函数体的作用域之外保存某些Lua数据.那么我们想到全局变 ...

  9. 浅谈cocos2dx(17) 中单例管理模式

    ----我的生活,我的点点滴滴!. 首先明白一个问题.什么是管理者模式,管理类是用来管理一组相关对象的类,他提供了訪问对象的接口,假设这么说比較抽象的话.我们来看下cocos2dx中都有哪些类是管理类 ...

  10. php之将用户信息写入数据库

    session高级应用将用户信息写入到数据库中 首先建立数据库表 在实验数据库sqldb中建立session表,用于存储数据 在根文件夹下建立须要用到的文件(重点是session,class.php这 ...