Mac上的Python虚环境配置

1、什么是anaconda、conda和pip
  • 前言
    在我们使用Python进行数据分析以及编程的时候,我们需要使用很多的包,并且在不同的项目,我们可能要用到不同版本的包,这就出现了以下的问题:

    第一,如果我们每个包都去下载,且不说耗时耗力,难道真的能够记住所有要用的包?

    第二,我们一个项目可能要用很多的包,并且时常需要更新或者降级,我们难道要自己去一个个的更新吗?

    第三,不同的项目需要不同的环境,难道我们每更换一个项目就重新配一次环境吗?

  • anaconda解决以上问题

    包的集合:anaconda自身包含了Python、conda等很多科学包及其依赖项,我们常用的包它基本都包含,解决了手动装包的问题。

    包管理器:anaconda是从conda基础上发展而来,conda是一个包管理器,通过anaconda使用conda工具可以让我们轻松地安装、更新、卸载这些依赖包。

    虚环境管理器:anaconda提供虚环境,可以为每个项目量身定制需要的环境,在开发不同项目时,只需轻松切换。

    综上所述,anaconda是Python的发行版,意思就是:anaconda是包含了第三方依赖的Python发行版,并且使用了conda作为包管理器,并且可以支持虚拟环境的搭建。

  • 两个包管理器:pip和conda

比较项pipconda
作用范围Python多种语言包管理工具,如C,C++
初始状态使用pip前必须先安装Python解释器可以直接安装Python包和Python解释器
虚环境支持必须依赖virtualenv或venv等其他工具,没有内置的环境支持可以支持安装不同版本的Python包或其他软件包的隔离安装环境
安全性pip在串行安装包的时候,安装后面的包不会考虑前面包的依赖性,不能同时保证所有包的依赖性,若存在不兼容,可能会破坏环境在安装包的时候能够保证所有的包都能够兼容
广度pip能够安装PyPI上提供的150,000多个软件包conda可以安装一百来个包,有的包是安装不了的

如果我们专注于只是安装Python包,conda和pip服务不同的受众和不同的目的。 如果你想在现有的系统Python安装中管理Python包,conda不能帮助你:通过设计,它只能在conda环境中安装包。 如果你想说,使用依赖于外部依赖的许多Python包(NumPy,SciPy和Matplotlib是常见的例子),同时以一种有意义的方式跟踪这些依赖,pip不能帮助你:它管理Python包且只有Python包。(引自:http://blog.sina.com.cn/s/blog_8a122dcf0102x9vn.html)

Conda和pip不是竞争对手,而是侧重于不同用户组和使用模式的工具。

我们通常会看到同时使用conda和pip,是因为有些包只能通过pip安装,但是conda是更加安全的,通常我们推荐尽量用conda,装不了的包再用pip。

2、anaconda创建虚拟环境
  • conda常用命令

      conda list             —— —— 查看安装了哪些包
      conda env list         —— —— 查看当前有哪些虚拟环境
      conda update conda     —— —— 更新当前conda
      python --version       —— —— 查看当前环境的Python版本
    
  • 虚拟环境操作

    • 第一步,创建虚拟环境
      创建名为your_env_name,python版本为X.X的虚拟环境:

        conda create -n your_env_name python=X.X
      

      your_env_name文件可以在Anaconda安装目录envs文件下找到。以上命令,等号两边不要加空格,会报错。

    • 第二步,环境切换
      当我们不开启虚拟环境的时候,我们都是默认使用PATH环境中的默认python版本。所以对虚拟环境的开启和关闭也就等同于开发环境的切换。

      激活名为your_env_name的虚拟环境:

        source activate your_env_name
      

      关闭当前的虚拟环境:

        source deactivate
      

      在使用这条命的时候遇到了一个报错:
      source: no such file or directory: deactivate。
      解决方法是使用命令:

        conda deactivate
      

      但是这里要注意,conda的版本必须在4.6以上,如果版本太低,需要更新conda。然后我又尝试了这条命令:

        conda activate your_env_name
      

      成功做到了将环境切换到your_env_name,所以现在我们有两种方法进行环境切换了。

      要说明的是,在我出现以上报错的时候,激活命令 source activate your_env_name 仍然是可以正常使用的,只是关闭命令无法正常使用。

    • 第三步,安装与删除其他的包
      首先,切换到创建的虚拟环境,剩下的命令其实就是conda的正常命令:
      安装package的version number版本到当前虚拟环境中:

       conda install package=version number
      

      以上命令,等号两边不要加空格,会报错。

      删除环境当前虚拟环境中的package_name包:

       conda remove package_name	
      
    • 删除虚拟环境
      删除名为your_env_name的环境:

        conda remove -n your_env_name --all
      

      注意,在执行这条命令的时候,必须在其他的环境中,也就是说如果要删除环境your_env_name,我们必须先关闭这个环境,我们不能删除一个正在使用的环境。如在删除your_env_name这个环境的时候,先切入到base环境,然后执行命令,可以顺利删除。

以上每条指令都亲自运行过,可放心使用。

3、pip创建虚拟环境

这篇文章讲的挺好,不过我没动手试过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值