简介

如果你使用Python开发,对于不同的开发框架或应用肯定会有Python多版本共存的情况,此时Python多环境管理工具就可以帮你快速解决此问题,以便将精力专注开发。

今天我们就来介绍下Python多环境管理的几种工具:

  • Anaconda
  • Virtualenv
  • Virtaulenvwrapper

通过对以上工具的讲解,你以后就再也不用担心Python多版本共存的问题了。

Anaconda

Anaconda多应用在科学计算中,但是它可以很方便的对各个Python环境进行切换;而且自动包管理器conda可以安装软件包的多个版本和依赖。换句话说,我们可以使用conda命令安装各种Python工具,就像yum和pip一样方便。

1.安装部署

wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh bash Miniconda2-latest-Linux-x86_64.sh #自动写入环境变量vim /root/.bashrc# added by Miniconda2 4.2.12 installerexport PATH="$PATH:/usr/local/miniconda2/bin"#测试安装是否成功conda list

安装过程是交互的,安装路径为 /usr/local/miniconda2 。

注意:

  1. 如果你已经安装了python环境,最好将conda的环境变量加在PATH最后,否则会优先使用/usr/local/miniconda2/bin下的python命令,造成不必要的麻烦。
  2. conda包括完整版的anaconda和最小化版miniconda。anaconda包含720多个开源安装包,安装完成至少需要3G空间;miniconda安装需要大约400M空间。我们使用miniconda就足够。

2.管理环境

(1)创建新的环境

conda create -n science numpy scipy matplotlib或conda create -n science -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ numpy scipy matplotlib或

通过以上命令都会创建一个名为science的环境,默认使用python2(若使用python3需要指定版本),并且安装numpy scipy matplotlib模块。不过由于使用官方的安装源很慢,我们在此使用国内的清华安装源。

(2)查看当前所有环境

#环境列表conda info --envs# conda environments:#science               *  /usr/local/miniconda2/envs/scienceroot                     /usr/local/miniconda2#切换环境变量source activate science(science) root@test:~# source activate root

(3)删除环境

conda remove -n science_python3 --all

(4)添加国内安装源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes#查看配置conda config --show 

Anaconda环境管理中除了使用conda来安装使用的python依赖包外,还可以使用pip,但是必须是“/usr/local/miniconda2”路径下的,否则将会使用操作系统自动的python,安装的包并不会加载到Anaconda环境中。

Virtualenv

Virtaulenv的原理是把系统Python复制一份到Virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令Python和pip均指向当前的virtualenv环境。Virtaulenv相较于Anaconda,更多应用在开发环境。

1.安装部署

pip install virtualenv 或 easy_install virtualenv

2.创建虚拟环境

[root@test:/virtual_protect]# mkdir /virtual_project[root@test:/virtual_protect]# cd virtual_project[root@test:/virtual_protect]# virtualenv venvNew python executable in /root/virtual_protect/venv/bin/pythonInstalling setuptools, pip, wheel...done.

virtualenv venv 命令将会在virtual_project目录中创建一个文件夹,包含了Python可执行文件,以及 pip 库的一份拷贝,这样就能安装其他包了。
如果此时你的系统里有其他版本python,可以使用-p或–python参数来指定虚拟环境使用哪个版本的python,如下:

virtualenv -p /usr/local/python3 venv

3.启动虚拟环境

[root@test:/virtual_protect]# source venv/bin/activate(venv) [root@test:/virtual_protect]# pip listpip (8.1.2)setuptools (28.3.0)wheel (0.30.0a0)

登陆虚拟环境通过pip查看安装的包并没有系统自带python中安装的,这是因为virtualenv 运行时,默认自带–no-site-packages参数,将不会包含系统自带python安装的包。我们可以通过使用–system-site-packages参数来使虚拟环境包含系统python安装的包。

还有一种方法可以使虚拟环境包含系统自动python安装的包:

#导出包到指定文件中pip freeze > requirements.txt#安装指定的包pip install -r requirements.txt

4.退出虚拟环境

deactivate

对于Virtualenv来说并不会像Anaconda那样帮你安装其他版本的Python,它是依赖于你的操作系统已经安装的Python,在创建虚拟环境时指定Python版本。

Virtaulenvwrapper

Virtaulenvwrapper是Virtualenv的扩展包,用于更方便管理虚拟环境,它可以将将所有虚拟环境整合在一个目录下、管理(新增,删除,复制)虚拟环境、切换虚拟环境等。

1.安装配置

#安装pip install virtualenvwrapper#创建目录用来存放虚拟环境mkdir /virtualenv_project#设置环境变量[root@test:~/virtual_protect]# vim ~/.bashrcexport WORKON_HOME=~/virtualenv_projectsource /usr/local/bin/virtualenvwrapper.sh[root@test:~/virtual_protect]# source ~/.bashrc 

2.创建虚拟环境

[root@test:~/virtual_protect]# mkvirtualenv venv1New python executable in /root/virtualenv_project/venv1/bin/pythonInstalling setuptools, pip, wheel...done.[root@test:~/virtual_protect]# mkvirtualenv venv2New python executable in /root/virtualenv_project/venv2/bin/pythonInstalling setuptools, pip, wheel...done.

其中mkvirtualenv命令类似与virtualenv命令,也可以通过-p、–no-site-packages、–system-site-packages等参数进行配置。

3.列出虚拟环境并切换

#列出当前的虚拟环境[root@test:~/virtual_protect]# lsvirtualenv -bvenv1venv2#切换虚拟环境 [root@test:~/virtual_protect]# workon venv1(venv1) [root@test:~/virtual_protect]# workon venv2(venv2) [root@test:~/virtual_protect]# 

4.退出并删除虚拟环境

deactivatedeactivate

Virtaulenvwrapper只是是Virtualenv的扩展包,底层是需要和Virtualenv配合使用的,只不过使操作更简便些罢了。

总结

经过以上介绍,我们已经学会了Python的多环境管理,也了解了Anaconda、Virtualenv、Virtaulenvwrapper的工作方式及应用领域,我们根据自己的实际情况按需选择。

conda切换环境_Python多环境管理,你需要知道的几种方法相关推荐

  1. android 漫画切换,Android逆向之路---让我们试试另一种方法看漫画-(2)

    前言 上次我们分析到了快看漫画的协议部分,这次我们根据他的协议来手动写个脚本,然后执行以后,可以把他的漫画自动下载到电脑上面, 然后自动拼接图片,这样就可以实现在电脑上当成一个长图来看漫画了,没有广告 ...

  2. python 切换环境_python多环境切换及pyenv使用过程详解

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash 下载如下报错,则安装nss ...

  3. python 切换环境_python 使用 pyenv 多环境切换

    利用pyenv 实现python  多版本切换 下载curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/ ...

  4. 用python打开视频_python读取视频流提取视频帧的两种方法

    本文实例为大家分享了python读取视频流提取视频帧的具体代码,供大家参考,具体内容如下 方法一:通过imageio库和skimage库 1. 安装环境: pip install imageio pi ...

  5. python中保留两位小数的编写程序_Python中保留两位小数的几种方法

    保留两位小数,并做四舍五入处理 方法一: 使用字符串格式化 >>> a = 12.345 >>> print("%.2f" % a) 12.35 ...

  6. python字典去最值_python 比较字典value的最大值的几种方法

    python中获取字典的key列表和value列表 # -*- coding: utf-8 -*- # 定义一个字典 dic = {'剧情': 11, '犯罪': 10, '动作': 8, '爱情': ...

  7. python中一个汉字是几个字符_Python中每次处理一个字符的5种方法

    目的 对字符串的每个字符进行处理,其实每个字符(Char)就是一个长度为1的字符串. 方法 1.使用内建函数list() 复制代码 代码如下: >>> A_string='Pytho ...

  8. python读取png图片只有一个图层_python实现读取并显示图片的两种方法

    在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...

  9. concurrentbag 删除指定元素_Python实现列表索引批量删除的5种方法_python

    这篇文章主要介绍了Python实现列表索引批量删除的5种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 最近用Java做项目 ...

最新文章

  1. qt练习11 鼠标,按键,滚轮事件学习
  2. UIAlertController
  3. 【转】校园网综合布线系统设计方案
  4. keras用cpu加速_在训练某些网络时,Keras(Tensorflow后端)在GPU上比在CPU上慢CPU
  5. java画笔覆盖在界面_Java学习笔记:swing画笔工具Graphics,刷新页面,键盘事件,随机数等【诗书画唱】...
  6. 2021年中国动物血浆制品及其衍生物市场趋势报告、技术动态创新及2027年市场预测
  7. 人力节省 50%,研发效能提升 40%,阿里 Serverless 架构落地实践
  8. 微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库
  9. 数据分析的数据来源于哪
  10. ADO.NET Entity Framework 4.1 中的代码优先
  11. Altium Designer 18简单入门介绍与分享
  12. 视觉SLAM十四讲学习笔记——ch10 后端2
  13. 随机森林算法原理梳理
  14. 计算机专业买哪一款华硕电脑好,华硕笔记本哪款好 如何挑选笔记本电脑
  15. 用分治法解决青蛙跳问题(斐波那契数列)
  16. python中列表常用方法
  17. 十分钟搞定SSD1963液晶屏驱动
  18. 贪心(Greedy Algorithm)
  19. 华为美女小姐姐,被外派墨西哥后,发生的事...
  20. ADVPT-C++复习准备

热门文章

  1. php输出mysqli查询出来的结果
  2. Sql日期时间格式转换
  3. Session的配置
  4. ext的window如何隐藏水平滚动条
  5. 使用Gridview绑定数据库中的图片
  6. http三次握手四次挥手详解
  7. Go的string/int/int64转化
  8. PHP的uniqid
  9. python中random是什么意思_Python代码中的“importrandom”是什么意思?
  10. json格式输出数组隐藏键值方法