目录
  1. Python 环境管理和包管理
    1. Anaconda
    2. Conda与pip的对比
    3. 安装和使用
      1. 1. 添加国内镜像
      2. 2. 环境配置
      3. 3. Conda常用命令:
      4. 4. Conda环境管理
      5. 5. 包管理
  2. 参考
Python环境管理和包管理

Python 环境管理和包管理

Anaconda

  • 是什么?
    • Python发行版本,里面包含了conda,Python等190多个科学包及其依赖项。
  • 优点:
    • 方便地安装、更新、卸载工具包,而且时能自动安装相应的依赖包,同时支持不同的虚拟环境隔离不同要求的项目。
    • 在安装 anaconda 时就预先集成了像 Numpy、Scipy、 pandas、Scikit-learn 这些在数据分析中常用的包
  • 下载地址:https://www.anaconda.com/distribution/

Conda与pip的对比

  • conda是什么?
    • Conda是一个开源的包、虚拟环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换,它的包管理类似PIP。
  • 用途
    • packages 管理
      • 可以使用 conda 来安装、更新 、卸载工具包 ,并且它更关注于数据科学相关的工具包
      • conda 并不仅仅管理Python的工具包,它也能安装非python的包。新版的 Anaconda 中就可以安装R语言的集成开发环境 Rstudio。
    • 虚拟环境管理
      • 在conda中可以建立多个虚拟环境,用于隔离不同项目所需的不同版本的工具包,以防止版本上的冲突
  • pip的缺点
    • pip只是一个包管理器,所以它不能为你管理环境。
    • pip甚至不能升级python,因为它不像conda一样把python当做包来处理
    • 可以安装一些conda安装不了的包

安装和使用

1. 添加国内镜像

镜像大全不只是Anaconda

# 添加Anaconda的TUNA镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

# 设置搜索时显示通道地址,这个可以不加,只是为了看一下是否从镜像站下载
conda config --set show_channel_urls yes

这个时候会在电脑中创建一个.condarc文件,这个是conda的配置文件。我的文件中的内容是:

ssl_verify: true
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true

上面设置的源除了提供Anaconda库此外还可以设置第三方源:

channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

以上内容来源于:Anaconda 镜像使用帮助

2. 环境配置

环境位置:~/anacondaX/envs

可以在命令中运行conda info -e查看已安装的环境

C:\Users\wangj\Desktop>conda info -e
# conda environments:
#
base * C:\Users\wangj\Anaconda3

3. Conda常用命令:

# 更新anaconda
conda update conda

# 更新anaconda元数据包
conda update anaconda

# 卸载Anaconda
# 编辑 ~/.bash_profile 这个文件删除环境变量
# 删除 .condarc 文件这个文件默认没有,只有你执行过 conda config 命令以后才会自动建立。该文件是conda的配置文件
# 是YAML格式。比如你可以设置安装包的渠道,是否自动更新conda,是否允许其他渠道等设置。

4. Conda环境管理

  • 创建环境
# 建立一个环境并安装其他版本的Python,安装其他版本为啥还要建立环境呢?因为多版本支持就是靠不同环境实现的,所以你安装其他版本
# 一定要和某个环境关联才可以。
# python27 是环境名称
# python=2.7 是要安装的包和版本
# anaconda 是创建环境时同时要安装的包,这个可以不写
conda create -n python27 python=2.7 anaconda
conda create -n python36 python=3.6
conda create -n python37 python=3.7

# 更新Python,进入某个环境运行下面的命令,将更新当前环境的Python到最新分支版本。比如当前是3.5,更新后将会到最新的3.X
conda update python
  • 环境切换
# 列出当前环境,环境名称前有 * 号的表示当前环境
conda list --evns
conda env list

# 创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本)
conda create --name python34 python=3.4

# 安装好后,使用activate激活某个环境
activate python34 # for Windows
source activate python34 # for Linux & Mac

# 如果想返回默认的python 2.7环境,运行
deactivate python34 # for Windows
source deactivate python34 # for Linux & Mac

# 不加环境则返回默认环境
source deactivate # for Linux & Mac
deactivate # for Windows

# 导出环境,它会把当前环境中安装的包以及版本号都导出去,这样你就可以拿到另外的机器上来重新构建一个相同的环境
# 导出的内容包括环境名称,安装渠道,该环境安装的包以及版本号。
source activate python36 # 首先进入名称叫做python36环境
conda env export > environment.yml # 导出当前环境到指定文件
conda env create -f environment.yml # 通过环境文件建立环境,不需要指定环境名称,因为文件中包含名称字段

# 移除一个名称python36叫做环境
conda env remove --name python36

5. 包管理

# 查找包
conda search 包名
# 安装包
conda install --name myenv scipy # 安装包到指定环境中
conda install scipy # 安装包到当前环境中
conda install scipy=0.15.0 # 安装指定版本的包,到当前环境
conda install scipy curl # 安装多个包
conda install -c anaconda django # -c是指定渠道名称,也就是用哪个渠道安装django。

# 卸载包
conda remove 包名 # 删除当前环境中的指定包
conda remove -n python34 numpy # 删除指定环境中的指定包

# 安装不在conda或者acaconda的包,当你安装的包不在conda管理范围的时候可以使用pip来安装
conda install pip # 首先在当前环境中安装pip
pip install 包名 # 其次在通过PIP命令在当前环境中安装包

# 更新包
conda update 包名 # 更新当前环境指定的包
conda update -n python36 numpy # 更新指定环境中的指定包

# 查看当前已经安装的packages
conda list
conda list -n python36 # 查看指定环境中安装的所有包

注:对于那些无法通过conda安装或者从Anaconda.org获得的包,我们通常可以用pip来安装包

  • 如何查找已经安装Python包的位置
# 方法一:直接在cmd中 输入pip show 包名
C:\Users\wangj\Desktop>pip show numpy
Name: numpy
Version: 1.15.1
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email: None
License: BSD
Location: c:\users\wangj\anaconda3\lib\site-packages
Requires:
Required-by: tables, seaborn, scikit-learn, PyWavelets, pytest-doctestplus, pytest-arraydiff, patsy, pandas, odo, numexpr, numba, mkl-random, mkl-fft, matplotlib, h5py, datashape, Bottleneck, bokeh, bkcharts, astropy

# 方法二:通过import后查看包的内置属性 包.__file__
C:\Users\wangj\Desktop>ipython
In [1]: import numpy
In [2]: numpy.__doc__
Out[2]: '\nNumPy\n=====\n\nProvides\n 1. An array object of arbitrary homogeneous items\n 2. Fast mathematical operations over arrays\n 3. Linear Algebra, Fourier Transforms, Random Number Generation\n\nHow to use the documentation\n---------------..............

In [3]: numpy.__file__
Out[3]: 'C:\\Users\\wangj\\Anaconda3\\lib\\site-packages\\numpy\\__init__.py'

参考