anacanda管理python包

如何使用Anaconda来管理 Python 所用的包和环境

 

Anaconda 能让你轻松安装在数据科学工作中经常使用的包。你还将使用它创建虚拟环境,以便更轻松地处理多个项目。Anaconda 简化了我的工作流程,并且解决了我在处理包和多个 Python 版本时遇到的大量问题。

Anaconda 实际上是一个软件发行版,它附带了conda、Python 和 150 多个科学包及其依赖项。应用程序conda是包和环境管理器。

 

使用conda来管理包和环境能减少将来在处理你要使用的各种库时遇到的问题。

 

管理

包管理器用于在计算机上安装库和其他软件。你可能已经熟悉 pip,它是 Python 库的默认包管理器。conda 与 pip 相似,不同之处是可用的包以数据科学包为主,而 pip 适合一般用途。但是,conda并非像 pip 那样专门适用于 Python,它也可以安装非 Python 的包。它是适用于任何软件堆栈的包管理器。也就是说,并非所有的 Python 库都能通过 Anaconda 发行版和 conda 获得。在使用 conda 的同时,你仍可以并且仍将使用 pip 来安装包。

Conda 安装了预编译的包。例如,Anaconda 发行版附带了使用MKL 库编译的 Numpy、Scipy 和 Scikit-learn,从而加快了各种数学运算的速度。这些包由发行版的贡献者维护,这意味着它们通常滞后于新版本。但是,由于有人需要为许多系统构建这些包,因此,它们往往更为稳定,而且更便于你使用。

环境

除了管理包之外,conda 还是虚拟环境管理器。它类似于另外两个很流行的环境管理器,即virtualenvpyenv

环境能让你分隔你要用于不同项目的包。你常常要使用依赖于某个库的不同版本的代码。例如,你的代码可能使用了 Numpy 中的新功能,或者使用了已删除的旧功能。实际上,不可能同时安装两个 Numpy 版本。你要做的应该是,为每个 Numpy 版本创建一个环境,然后在适用于项目的环境中工作。

在应对 Python 2 和 Python 3 时,此问题也会常常发生。你可能会使用在 Python 3 中不能运行的旧代码,以及在 Python 2 中不能运行的新代码。同时安装两个版本可能会造成许多混乱和错误。而创建独立的环境会好很多。

也可以将环境中的包的列表导出为文件,然后将该文件与代码包括在一起。这能让其他人轻松加载代码的所有依赖项。pip 提供了类似的功能,即pip freeze > requirements.txt。

 

 

在 Windows 上,会随 Anaconda 一起安装一批应用程序:

Anaconda Navigator,它是用于管理环境和包的 GUI

Anaconda Prompt 终端,它可让你使用命令行界面来管理环境和包

Spyder,它是面向科学开发的 IDE

管理包

安装了 Anaconda 之后,管理包是相当简单的。要安装包,请在终端中键入conda install package_name。例如,要安装 numpy,请键入conda install numpy。

你还可以同时安装多个包。类似conda install numpy scipy pandas的命令会同时安装所有这些包。还可以通过添加版本号(例如conda install numpy=1.10)来指定所需的包版本。

Conda 还会自动为你安装依赖项。例如,scipy依赖于numpy,因为它使用并需要numpy。如果你只安装scipy(conda install scipy),则 conda 还会安装numpy(如果尚未安装的话)。

大多数命令都是很直观的。要卸载包,请使用conda remove package_name。要更新包,请使用conda update package_name。如果想更新环境中的所有包(这样做常常很有用),请使用conda update --all。最后,要列出已安装的包,请使用前面提过的conda list。

如果不知道要找的包的确切名称,可以尝试使用conda search search_term进行搜索。例如,我知道我想安装Beautiful Soup,但我不清楚确切的包名称。因此,我尝试执行conda search beautifulsoup。

 

 

管理环境

如前所述,可以使用 conda 创建环境以隔离项目。要创建环境,请在终端中使用conda create -n env_name list of packages。在这里,-n env_name设置环境的名称(-n是指名称),而list of packages是要安装在环境中的包的列表。例如,要创建名为my_env的环境并在其中安装 numpy,请键入conda create -n my_env numpy。

 

创建环境时,可以指定要安装在环境中的 Python 版本。这在你同时使用 Python 2.x 和 Python 3.x 中的代码时很有用。要创建具有特定 Python 版本的环境,请键入类似于conda create -n py3 python=3或conda create -n py2 python=2的命令。实际上,我在我的个人计算机上创建了这两个环境。我将它们用作与任何特定项目均无关的通用环境,以处理普通的工作(可轻松使用每个 Python 版本)。这些命令将分别安装 Python 3 和 2 的最新版本。要安装特定版本(例如 Python 3.3),请使用conda create -n py python=3.3。

 

进入环境

创建了环境后,在 OSX/Linux 上使用source activate my_env进入环境。在 Windows 上,请使用activate my_env。

 

进入环境后,你会在终端提示符中看到环境名称,它类似于(my_env) ~ $。环境中只安装了几个默认的包,以及你在创建它时安装的包。可以使用conda list检查这一点。在环境中安装包的命令与前面一样:conda install package_name。不过,这次你安装的特定包仅在你进入环境后才可用。要离开环境,请键入source deactivate(在 OSX/Linux 上)。在 Windows 上,请使用deactivate。

 

 

保存和加载环境

共享环境这项功能确实很有用,它能让其他人安装你的代码中使用的所有包,并确保这些包的版本正确。可以使用conda env export > environment.yaml将包保存为YAML。第一部分conda env export写出环境中的所有包(包括 Python 版本)。

上图可以看到列出了环境的名称和所有依赖项及其版本。导出命令的第二部分> environment.yaml将导出的文本写入到 YAML 文件environment.yaml中。现在可以共享此文件,而且其他人能够创建和你用于项目相同的环境。

要通过环境文件创建环境,请使用conda env create -f environment.yaml。这会创建一个新环境,而且它具有在environment.yaml中列出的同一库。

 

 

列出环境

如果忘记了环境的名称(我有时会这样),可以使用conda env list列出你创建的所有环境。你会看到环境的列表,而且你当前所在环境的旁边会有一个星号。默认的环境(即当你不在环境中时使用的环境)名为root。

删除环境

如果你不再使用某些环境,可以使用conda env remove -n env_name删除指定的环境(在这里名为env_name)。

 

 

 

最佳做法

使用环境

对我帮助很大的一点是,我的 Python 2 和 Python 3 具有独立的环境。我使用了conda create -n py2 python=2和conda create -n py3 python=3创建两个独立的环境,即py2和py3。现在,我的每个 Python 版本都有一个通用环境。在所有这些环境中,我都安装了大多数标准的数据科学包(numpy、scipy、pandas 等)。

我还发现,为我从事的每个项目创建环境很有用。这对于与数据不相关的项目(例如使用 Flask 开发的 Web 应用)也很有用。例如,我为我的个人博客(使用Pelican)创建了一个环境。

共享环境

在 GitHub 上共享代码时,最好同样创建环境文件并将其包括在代码库中。这能让其他人更轻松地安装你的代码的所有依赖项。对于不使用 conda 的人,我通常还会使用pip freeze(在此处了解详情)将一个 piprequirements.txt文件包括在内。

了解更多信息

要详细了解 conda 和它如何融入到 Python 生态系统中,请查看这篇由 Jake Vanderplas 撰写的文章:Conda myths and misconceptions(有关 conda 的迷思和误解)。此外,有空也可以参考这篇conda 文档

用conda创建python虚拟环境

1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。
2、conda常用的命令。
1)conda list 查看安装了哪些包。
2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境
3)conda update conda 检查更新当前conda
4)conda update --all 更新本地已安装的包
3、创建Python虚拟环境。
使用 conda create -n your_env_name python=X.X(2.7、3.6等) anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
4、使用激活(或切换不同python版本)的虚拟环境。
打开命令行输入python --version可以检查当前python的版本。
使用如下命令即可 激活你的虚拟环境(即将python的版本改变)。
Linux: source activate your_env_name(虚拟环境名称)
Windows: activate your_env_name(虚拟环境名称)
这是再使用python --version可以检查当前python版本是否为想要的。
5、对虚拟环境中安装额外的包。
使用命令conda install -n your_env_name [package]即可安装package到your_env_name中
6、关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)。
使用如下命令即可。
linux: source deactivate
Windows: deactivate
7、删除虚拟环境。
使用命令conda remove -n your_env_name(虚拟环境名称) --all, 即可删除。
8、删除环境中的某个包。
使用命令conda remove --name your_env_name package_name 即可。

conda更改镜像源

添加国内源:

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

换回默认源:

conda config --remove-key channels

在执行conda config 命令的时候

会在当前用户目录下创建 .condarc  文件,可以查看更换源前后该文件内容的变化。

 

conda常用命令

linux系统上下载并安装conda:

wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda2-latest-Linux-x86_64.sh

bash Miniconda2-latest-Linux-x86_64.sh

后续具体步骤参照  ——-生信技能树conda管理生信软件一文就够

查看是否成功安装

source ~/.bashrc

未出现任何提示,说明安装成功,进行下一步调用conda命令

conda --help

若出现“conda command not found”这样的语句,则可以通过编辑~/.bashrc文件

vim ~/.bashrc

在~/.bashrc文件结尾加上

export PATH=~/具体conda安装路径/bin:$PATH

退出后,再次执行

source ~/.bashrc

conda --help

配置conda镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda

conda config --set show_channel_urls yes

source ~/.condarc

通过source ~/.condarc查看现有环境配置镜像,vim命令可以编辑 ~/.condarc删除失败的镜像。

创建小环境

conda create -n +创建环境名称

查看小环境

conda info -e

进入小环境

source activate  +环境名称

查看小环境已安装的软件

conda list

安装相应版本的软件

conda install PACKAGENAME==VERSION

查找相应的软件包

conda search PACKAGENAME

退出小环境

conda deactivate

移除小环境

conda env remove --name bio-env

conda查看删除镜像源:

anaconda查看删除增加镜像源

# 查看显示原来的镜像源
(base) [jiangshan@localhost ~]$ conda config --show
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:
- ca-certificates
- certifi
- openssl
allow_conda_downgrades: False
allow_cycles: True
allow_non_channel_urls: False
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
auto_activate_base: True
auto_update_conda: True
bld_path:
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: flexible
channels:
- https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/cpu/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
conda_build: {}
create_default_packages: []
croot: /home/jiangshan/anaconda3/conda-bld
custom_channels:
pkgs/main: https://repo.anaconda.com
pkgs/free: https://repo.anaconda.com
pkgs/r: https://repo.anaconda.com
pkgs/pro: https://repo.anaconda.com
custom_multichannels:
defaults:
- https://repo.anaconda.com/pkgs/main
- https://repo.anaconda.com/pkgs/free
- https://repo.anaconda.com/pkgs/r
local:
debug: False
default_channels:
- https://repo.anaconda.com/pkgs/main
- https://repo.anaconda.com/pkgs/free
- https://repo.anaconda.com/pkgs/r
default_python: 3.7
deps_modifier: not_set
disallowed_packages: []
download_only: False
dry_run: False
enable_private_envs: False
env_prompt: ({default_env})
envs_dirs:
- /home/jiangshan/anaconda3/envs
- /home/jiangshan/.conda/envs
error_upload_url: https://conda.io/conda-post/unexpected-error
extra_safety_checks: False
force: False
force_32bit: False
force_reinstall: False
force_remove: False
ignore_pinned: False
json: False
local_repodata_ttl: 1
migrated_channel_aliases: []
migrated_custom_channels: {}
non_admin_enabled: True
notify_outdated_conda: True
offline: False
override_channels_enabled: True
path_conflict: clobber
pinned_packages: []
pip_interop_enabled: False
pkgs_dirs:
- /home/jiangshan/anaconda3/pkgs
- /home/jiangshan/.conda/pkgs
proxy_servers: {}
prune: False
quiet: False
remote_connect_timeout_secs: 9.15
remote_max_retries: 3
remote_read_timeout_secs: 60.0
report_errors: None
rollback_enabled: True
root_prefix: /home/jiangshan/anaconda3
safety_checks: warn
sat_solver: pycosat
shortcuts: True
show_channel_urls: True
solver_ignore_timestamps: False
ssl_verify: True
subdir: linux-64
subdirs:
- linux-64
- noarch
target_prefix_override:
track_features: []
update_modifier: update_specs
use_index_cache: False
use_local: False
verbosity: 0
whitelist_channels: []

# 删除旧镜像源
(base) [jiangshan@localhost ~]$ conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/cpu/

# 添加新镜像源
(base) [jiangshan@localhost ~]$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/cpu/

# 设置搜索时显示通道地址
(base) [jiangshan@localhost ~]$ conda config --set show_channel_urls yes

anconda+用conda创建python虚拟环境

Anaconda与conda区别 


conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。 conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身 Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等。


 


1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。


2、conda常用的命令。


    1)conda list 查看安装了哪些包。


    2)conda env listconda info -e 查看当前存在哪些虚拟环境


    3)conda update conda 检查更新当前conda


3、创建Python虚拟环境。


     使用 conda create -n your_env_name python=X.X(2.7、3.6等) anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到


# 指定python版本为2.7,注意至少需要指定python版本或者要安装的包# 后一种情况下,自动安装最新python版本
conda create -n env_name python=2.7
# 同时安装必要的包
conda create -n env_name numpy matplotlib python=2.7
4、使用激活(或切换不同python版本)的虚拟环境。


    打开命令行输入python --version可以检查当前python的版本。


    使用如下命令即可 激活你的虚拟环境(即将python的版本改变)。


    Linux:  source activate your_env_name(虚拟环境名称)


    Windows: activate your_env_name(虚拟环境名称)


   这是再使用python --version可以检查当前python版本是否为想要的。


5、对虚拟环境中安装额外的包。


    使用命令conda install -n your_env_name [package]即可安装package到your_env_name中


6、关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)。


   使用如下命令即可。


deactivate env_name,也可以使用`activate root`切回root环境
Linux下使用 source deactivate 
7、删除虚拟环境。


移除环境
   使用命令conda remove -n your_env_name(虚拟环境名称) --all, 即可删除。


删除环境中的某个包。
   使用命令conda remove --name $your_env_name  $package_name 即可。


8、设置国内镜像


如果需要安装很多packages,你会发现conda下载的速度经常很慢,因为Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源有Anaconda仓库的镜像,我们将其加入conda的配置即可:

# 添加Anaconda的TUNA镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# TUNA的help中镜像地址加有引号,需要去掉
 
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

conda添加镜像源

添加仓库

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

Conda 三方源

Conda Forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

menpo
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/

pytorch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
 

 

PIP命令及虚拟环境的建立

以下命令是pip命令,是帮助我们安装解决python所需要的环境包

列出已经安装的包

pip list

安装要安装的包

pip install 包名

安装特定版本

pip install django==1.1.5   #=在python中代表赋值的作用,只有==才是等于的意思

导出python环境

pip freeze > requestment.txt #可以获取到当前环境下的所有安装包的版本,有助于以后布置别台电脑,可以避免bug,从而导入跟现在一样的环境。

从导出的python环境中安装所需要的包

pip install –r requestment.txt

卸载导出的python环境中的包

pip uinstall –r requestment.txt

显示可升级的包

pip list –o

下载包而不安装

pip install <包名> -d <目录> 或 pip install -d <目录> -r requirements.txt 

更换国内pypi镜像(推荐临时使用这些源)

pip install <包名> -i http://pypi.v2ex.com/simple 

阿里:https://mirrors.aliyun.com/pypi/simple 

豆瓣:http://pypi.douban.com/simple 

中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/ 

指定全局安装源 (不想每一次加 -i)

在linux和macos,配置文件为:$HOME/.pip/pip.conf 

在windows上,配置文件为:%HOME%\pip\pip.ini

(1):在windows文件管理器中,输入 %APPDATA%

(2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件

(3):在新建的pip.ini文件中输入以下内容,搞定文件路径:"C:\Users\Administrator\AppData\Roaming\pip\pip.ini"

[global] 

timeout = 6000 

index-url = http://pypi.douban.com/simple

为什么需要虚拟环境(一个环境下只能有一个软件包的版本存在)

  如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有Django 1.10和Django 0.9两套环境呢?这时候我们就可以通过虚拟环境来解决这个问题。

安装虚拟环境

virtualenv是用来创建虚拟环境的软件工具,我们可以通过pip或者pip3来安装

pip install virtualenv   #windows

pip3 install virtualenv 

创建虚拟环境

创建虚拟环境非常简单,通过以下命令就可以创建了:

virtualenv [虚拟环境的名字]

进入虚拟环境

  虚拟环境创建好了以后,那么可以进入到这个虚拟环境中,然后安装一些第三方包,进入虚拟环境在不同的操作系统中有不同的方式,一般分为两种,第一种是Windows,第二种是*nix:

windows进入虚拟环境:进入到虚拟环境的Scripts文件夹中,然后执行activate。

linux进入虚拟环境

source /path/to/virtualenv/bin/activate

一旦你进入到了这个虚拟环境中,你安装包,卸载包都是在这个虚拟环境中,不会影响到外面的环境。

退出虚拟环境

退出虚拟环境很简单,通过一个命令就可以完成

deactivate

创建虚拟环境的时候指定Python解释器

  在电脑的环境变量中,一般是不会去更改一些环境变量的顺序的。也就是说比如你的Python2/Scripts在Python3/Scripts的前面,那么你不会经常去更改他们的位置。但是这时候我确实是想在创建虚拟环境的时候用Python3这个版本,这时候可以通过-p参数来指定具体的Python解释器:

virtualenv -p C:\Python36\python.exe [virutalenv name]

virtualenvwrapper

  virtualenvwrapper这个软件包可以让我们管理虚拟环境变得更加简单。不用再跑到某个目录下通过virtualenv来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。

安装virtualenvwrapper

linux

pip install virtualenvwrapper

windows

pip install virtualenvwrapper-win

virtualenvwrapper基本使用:

创建虚拟环境

mkvirtualenv my_env

那么会在你当前用户下创建一个Env的文件夹,然后将这个虚拟环境安装到这个目录下。

如果你电脑中安装了python2和python3,并且两个版本中都安装了virtualenvwrapper,那么将会使用环境变量中第一个出现的Python版本来作为这个虚拟环境的Python解释器。

切换到某个虚拟环境

workon my_env

退出当前虚拟环境

deactivate

删除某个虚拟环境

rmvirtualenv my_env

列出所有虚拟环境

lsvirtualenv

进入到虚拟环境所在的目录

cdvirtualenv

修改mkvirtualenv的默认路径:

在我的电脑->右键->属性->高级系统设置->环境变量->系统变量中添加一个参数WORKON_HOME,将这个参数的值设置为你需要的路径。

创建虚拟环境的时候指定Python版本: 

在使用mkvirtualenv的时候,可以指定--python的参数来指定具体的python路径:

mkvirtualenv --python==C:\Python36\python.exe hy_env

例子:

conda env list //查看当前安装的虚拟环境
conda config --show//查看当前环境的配置
conda config --remove-key channels//恢复默认镜像源
conda create -n py3 python=3.7//创建py3.7版本的虚拟环境
conda install -n py3 flask //在创建的新环境py3下安装包

参考资料:

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DLANDML

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值