anaconda 安装在c盘_最省心的Python版本和第三方库管理——初探Anaconda

4663413dc04b674f37d2c0a4e9a6c969.png

打算把公众号和知乎专栏的文章搬运一点过来。 

历史文章可以去关注我的公众号:不二小段,或者知乎:段小草。

也欢迎来看我的视频学Python↓↓↓

跟不二学Python

db71f33de1f7836f62d6bd77509e2520.png

这篇文章可以作为Python入门的第一站

502c26339e52d07ba2e6ca2ededba199.png

可以结合这期视频来看,基本上是这期视频的文字版教程了

e135aa0dcc09b3a584da5d2200a3cc20.png

说起Python入门第一步,很多人会说是Hello World。殊不知挡在众多小白同学面前的一座大山便是安装Python。安装Python有什么难的,可要真从和之争说起,夹杂着诸如Windows下如何安装lxml库,如何管理Python 和Python 之类的问题,工作量其实还是不小的。说起来我也是2、3混用了很久,初学时很长一段时间都停留在自带的idle编辑器,中间也因为编码问题专门转到过Ubuntu上去。现在的日常是本地Pycharm+远程服务器的Jupter Notebook。

今天写这篇文章,面向的是电脑里连Python都还没装的同学,推荐一种目前就我个人体验来看,最简单舒服省心的Python环境配置。当然了,如果电脑里混装了多版本很头疼,或者还在用idle+cmd进入Python命令行这样反人类的入门方式,不妨跟着试一试。

今天的主角是Anaconda,之后会再写文章详细介绍Jupyter的配置(本地和服务器配置,包括Win Server和Linux Server,还有多用户版本的Jupyterhub配置,当然拖更遥遥无期,急用的同学就自行谷歌,有问题可以私信我…)。

Anaconda是Python的一个开源发行版本,主要面向科学计算。我们可以简单理解为,Anaconda是一个预装了很多我们用的到或用不到的第三方库的Python。而且相比于大家熟悉的pip install命令,Anaconda中增加了conda install命令。当你熟悉了Anaconda以后会发现,conda install会比pip install更方便一些。比如大家经常烦恼的lxml包的问题,在Windows下pip是无法顺利安装的,而conda命令则可以,后面会详细展示。

Anaconda的官网在这里 。与Python相对应,Anaconda的版本分为Anaconda2和Anaconda3,大家可以自行下载日常常用的版本,提供32位和64位下载。(和混用的同学也不要担心,后面我们会讲具体的版本管理)

当然了,如果你真的选择去官网下载Anaconda的话会发现,速度慢到令人发指;当你等待了30多分钟下载安装完以后想要安装或者更新其中的包时,又会发现其速度慢到会断开连接安装报错…

(划重点)正确的姿势是从国内清华大学开源软件镜像站进行下载并配置镜像。

下载地址

选择相应的版本进行下载就好(直接找2017年最新版的Anaconda2或Anaconda3)。

下载完成后安装。C盘不吃紧的同学可以一路next,C盘如果吃紧最好换个地方,日积月累Anaconda会占用不小的地方…

建议作者在文章里加上 anaconda安装路径不要出现空格

下载过程中除了安装位置外,还有两个需要确认的地方。

714f5f79f04cc05250b03ee6fd736d6c.png
fa399eea74af0daccdbe2594e616ac57.png

第一个勾是是否把Anaconda加入环境变量,这涉及到能否直接在cmd中使用conda、jupyter、ipython等命令,推荐打勾,如果不打勾话问题也不大,可以在之后使用Anaconda提供的命令行工具进行操作;第二个是是否设置Anaconda所带的Python 为系统默认的Python版本,这个自己看着办,问题不大。

一路安装完成以后,就可以打开cmd测试一下安装结果。

分别输入python、ipython、conda、jupyter notebook等命令,会看到相应的结果,说明安装成功。(python是进入python交互命令行;ipython是进入ipython交互命令行,很强大;conda是Anaconda的配置命令;jupyter notebook则会启动Web端的ipython notebook)

5a7d067004341418661bb5d87e3f920b.png

需要注意的是jupyter notebook命令会在电脑本地以默认配置启动jupyter服务,之后会再谈到这个。

da9c09f2e77826cd111940bcb31401c5.png

Anaconda安装成功之后,我们需要修改其包管理镜像为国内源

简单来说就是在cmd中分别运行这两个命令就好了。

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

设置好镜像以后,我们继续进行环境管理。

因为我现在安装的是最新版Anaconda3,其自带的Python版本为,如果我们需要添加版本的Python,可以进行如下操作。(同理,如果有人安装的是Anaconda2需要添加Python ,之后操作里的改为或即可)

conda create -n py27 python=

其中py27是新添加环境的名字,可以自定义修改。

之后通过activate py27和deactivate py27命令激活、退出该环境。(Linux和OS系统的命令似乎是source activate和source deactivate)

activate py27

c7c4dc980f3d68a7d96e03404a40b490.png

在激活新环境后,我们所做的操作便都是在新环境下的,包括pip命令来安装第三方库。我们来试一下pip安装lxml。

pip install lxml

9bbfa2d14d1292675ae078f05a26cbff.png
df371292b9f22168eeca6e24f9a8162f.png

不出所料…失败了…如果你执意要自己解决这个问题,会很复杂,至少我在小白阶段直接放弃了解决这个问题…

那么正确的做法是什么呢?一条命令就够了。

conda install -n py27 lxml

10acbac237ed30e28d00dd6f05026cfa.png
f7b7ba3fd935e9edafb954260c141367.png

当然了,对于可以正常安装的库,自然可以使用pip命令。

afcca8ca2ffd5b81d750b3e46f4daf9d.png

最后,我们可以通过conda info -e命令查看已有的环境。

通过conda remove -n env_name --all来删除指定的环境(如果不添--all参数,而是指明某个库名,则是删除该库)。

比如我现在要删除py35这个环境。

d7dfa1842bb2cf3f86b66eff009a1b0b.png

彩蛋1

由于我们现在安装的是Anaconda3,之后又新添加了Python 环境,但是Python 环境中安装了Anaconda自带的科学计算环境,Python 中却没有,那么如何为新添加的环境也装上Anaconda的科学计算包呢,没必要一个一个来,更没有必要再去安装Anaconda2了,只需:

conda install -n py27 anaconda

但是这会安装非常多,非常多,非常多的包,慎用。

彩蛋2

我们已经说完了Anaconda中的包管理,那么既然Anaconda中可以使Python 和共存,Jupyter Notebook是否可以呢?

fcbf7d3dbce27f7334490d8e5a93a577.png

当然可以。

在这里我们不展开来介绍Jupyter Notebook,因为后面还会专门再写一篇,大家可以先初步了解。多版本的Python或者R等语言,在Jupyter中被称作kernel。

如果想要给Jupyter添加多个Python版本的kernel,有两种做法。

如果这个Python版本已经存在(比如我们刚才添加的py27环境),那么你可以直接为这个环境安装ipykernel包。即:

conda install -n py27 ipykernel

然后激活这个环境,输入

python -m ipykernel install --user

8c85336bf18f62c71ea0d0d1d26810e8.png
8067f250b1949e5b10515794ee757b34.png

如果所需版本并不是已有的环境,可以直接在创建环境时便为其预装ipykernel。

如:

conda create -n py27 python= ipykernel

PS 如果想要在创建新版本环境时直接装上其他库,像这里的ipykernel一样直接附在后面就可以了。之后同样是激活环境并添加kernel。

PPS 这个命令生成的其实是一个JSON文件,可以直接查看并修改。

7b57e61d0fd3f14bf32311678d4a7948.png

希望大家从此不再因为选择版本、安装Python、管理环境、添加第三方库(能用conda用conda,不能用conda用pip)、选择IDE(单文件Jupyter,项目组织开Pycharm)等等杂事所困扰,专心于代码。

(当然了,有一些库不论conda和pip都无法直接安装,只能下载.whl,这里不再赘述了,小白同学遇到这种问题的时候,应该也有能力自己解决这种问题了)

祝进步,祝愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dubbo控制中心部署,权重配置,以及管控台中各个配置的简单查看

dubbo给我们提供了现成的后台管理网站,专门管理这些服务,应用,路由规则,动态配置,访问控制、权重控制、负载均衡等等,还可以查看系统日志,系统状态,系统环境等等,功能很是…

1001种玩法 | 1001种玩法--数据存储(2)

新智云www.enncloud.cn第二趴 Flockdb:一个高容错的分布式图形数据库 FlockDB是一个存储图数据的分布式数据库,图数据库的存储对象是数学概念图论里面的图,而非图片。Twitter使用它来存储人与人之间的关系图,这些关系包括&#xf…

Android ListView分页,动态添加数据

1.ListView分页的实现,重点在于实现OnScrollListener接口,判断滑动到最后一项时,是否还有数据可以加载, 我们可以利用listView.addFootView(View v)方法进行提示 自定义一个ListView(这里本来想进行一些自定已修改的。…

faster rcnn的测试

当训练结束后,faster rcnn的模型保存在在py-faster-rcnn/output目录下,这时就可以用已有的模型对新的数据进行测试。 下面简要说一下测试流程。 测试的主要代码是./tools/test_net.py,并且使用到了fast_rcnn中test.py。 主要流程就是&…

Android-Universal-Image-Loader 的使用说明

这个图片异步载入并缓存的类已经被非常多开发人员所使用,是最经常使用的几个开源库之中的一个,主流的应用,随便反编译几个火的项目,都能够见到它的身影。但是有的人并不知道怎样去使用这库怎样进行配置,网上查到的信息…

faster rcnn end2end 训练与测试

除了前面讲过的rpn与fast rcnn交替训练外,faster rcnn还提供了一种近乎联合的训练,姑且称为end2end训练。 根据论文所讲,end2end的训练一气呵成,对于前向传播,rpn可以作为预设的网络提供proposal.而在后向传播中&…

基于像素聚类的分割方法基于slic的方法_博士论文摘要 | 张荣春:数码影像与TLS点云数据融合提取地质结构面方法研究...

《测绘学报》构建与学术的桥梁 拉近与权威的距离数码影像与TLS点云数据融合提取地质结构面方法研究张荣春1,21.南京邮电大学地理与生物信息学院, 江苏 南京 210023;2.河海大学地球科学与工程学院, 江苏 南京 211100收稿日期:2019-03-27基金项目:国家自然…

jaxb转xml空值双标签_单品运营思维:标签-词路-聚焦-直搜-超直

非标品标签思维:针对非标品 主要是2.0为主的打法根据搜索入池的关键词,有什么词做什么词。有个细节:不一定进什么词做什么词,这个维度当中加入3.0的思维3.0入手 转2.0再切3.0(检测词路健康度,非严格意义估算单量)举例&…

如何在PFSense中设置故障转移和负载平衡

故障转移是一种备份操作模式,仅在主系统由于系统故障或任何计划停机时间而变得不可用时,系统组件(如网络)的操作才由辅助系统承担。在本教程中,我们将看到如何设置故障转移和负载平衡,以使pfSense能够将流量…

图像金字塔总结

本文转载自: http://blog.csdn.net/dcrmg/article/details/52561656 一、 图像金字塔 图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像素采样的方式,生成N个不同分辨率的图像。把具有最高级别分辨率的图像放在底部…

什么叫做罗列式_项目起盘的时候,如何确定自己该做什么社群?

这是祁杰『社群日记』第48篇持续日更,做最懂社群的营销咨询人很多人手上有资源,准备起盘项目的时候,总会思考一个问题:我能做什么样的社群?今天我们从用户需求出发,拆解一下哪些社群是能够确切地满足用户的…

Feature Pyramid Networks for Object Detection 总结

最近在阅读FPN for object detection,看了网上的很多资料,有些认识是有问题的,当然有些很有价值。下面我自己总结了一下,以供参考。 1. FPN解决了什么问题? 答: 在以往的faster rcnn进行目标检测时,无论…

那些 IT 界的神翻译,原来我学不好编程的原因就在这

近日博主 ruanyf 在网上发布了一条关于套接字“socket”的解释,引发了网友对于那些 IT 界的神翻译的讨论: 突然想到,socket就是插座。服务器的socket,就是服务器提供插座,等着客户端的插头插进来。一旦插入完成&#x…

navicat 结构同步会加锁吗_被柜员怠慢的张小波,真的会永久地转走几个亿的结构性存款吗?...

4月7日下午,北京凤凰联动文化传媒有限公司总裁张小波发布微博称,前几天去安贞附近一银行,想把借记卡的转帐额度从每天五百万上调一下,没有想到,在其问到“最高可调到多少”时,柜员回答一个亿并“鄙夷地看了…

Mask RCNN笔记

mask rcnn简介 mask rcnn是何凯明基于以往的faster rcnn架构提出的新的卷积网络,一举完成了object instance segmentation. 该方法在有效地目标的同时完成了高质量的语义分割。 文章的主要思路就是把原有的Faster-RCNN进行扩展,添加一个分支使用现有的检…

网页设计中常用的19个Web安全字体

来自http://www.jb51.net 在Web编码中,CSS默认应用的Web字体是有限的,虽然在新版本的CSS3,我们可以通过新增的font-face属性来引入特殊的浏览器加载字体。但多数情况下,考虑各个因素的影响我们还是在尽量充分利用这些默认调用的字…

搜索专题题解

题目链接: codeforces 277A - Learning Languages 题目描述: 一个团体有n个人,每个人都掌握了一些语言,每个人学一门语言有1个花费,两个人之间可以通过其他人的翻译,问最少花费多少使得这个团体的任意两个人…

Facebook 开源的快速文本分类器 FastTex

FastText是Facebook开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,性能比肩深度学习而且速度更快。 fastText 原理fastText 方法包含三部分:模型架构、层次 Softmax 和 N-gram 特征。下面我们一一介绍。 1.1 模型架构 …

FCN-加载训练与测试数据

当我们生成了数据后,我们来看看FCN是如何加载数据的。 FCN 代码预览 其中: - data : 训练测试数据 - ilsvrc-nets:存放预训练的模型 - 剩下的框:不同数据集的训练测试prototxt - voc_layers,siftflow_layers等&am…

怎么撤销定时说说_已注册商标遇到撤三申请怎么办

很多企业的商标都遇到过商标撤三的情况,撤三简单的说就是,注册商标没有正当理由连续三年不使用的,任何单位或者个人可以向商标局申请撤销该注册商标。所以说,无论您的企业多大,商标持有的再多,也要做好商标…