目录
一、前言
二、Anaconda简介
三、安装步骤
(1)下载
(2)安装
(3)测试安装
四、配置
(1)设置国内镜像
(2)Python环境管理
五、Conda的包管理
六、运行Python
彩蛋1
彩蛋2
The end
说起Python入门第一步,很多人会说是Hello World。殊不知挡在众多小白同学面前的一座大山便是安装Python。安装Python有什么难的,可要真从2.x和3.x之争说起,夹杂着诸如Windows下如何安装lxml库,如何管理Python 2.x和Python 3.x之类的问题,工作量其实还是不小的。说起来我也是2、3混用了很久,初学时很长一段时间都停留在自带的idle编辑器,中间也因为编码问题专门转到过Ubuntu上去。现在的日常是本地Pycharm+远程服务器的Jupter Notebook。
今天写这篇文章,面向的是电脑里连Python都还没装的同学,推荐一种目前就我个人体验来看,最简单舒服省心的Python环境配置。当然了,如果电脑里混装了多版本很头疼,或者还在用idle+cmd进入Python命令行这样反人类的入门方式,不妨跟着试一试。
Anaconda是Python的一个开源发行版本,主要面向科学计算。我们可以简单理解为,Anaconda是一个预装了很多我们用的到或用不到的第三方库的Python。而且相比于大家熟悉的pip install命令,Anaconda中增加了conda install命令。当你熟悉了Anaconda以后会发现,conda install会比pip install更方便一些。比如大家经常烦恼的lxml包的问题,在Windows下pip是无法顺利安装的,而conda命令则可以,后面会详细展示。
从官网下载:https://www.anaconda.com/download/不过官网速度比较慢,不太推荐。
与Python相对应,Anaconda的版本分为Anaconda2和Anaconda3,大家可以自行下载日常常用的版本,提供32位和64位下载。(2.x和3.x混用的同学也不要担心,后面我会讲具体的版本管理)
当然了,如果你真的选择去官网下载Anaconda的话会发现,速度慢到令人发指;当你等待了30多分钟下载安装完以后想要安装或者更新其中的包时,又会发现其速度慢到会断开连接安装报错……
从清华镜像下载:Tsinghua Open Source Mirror(推荐)
选择相应的版本进行下载就好(直接找2018年最新版的Anaconda2或Anaconda3)。
下载完成后安装。C盘不吃紧的同学可以一路next,C盘如果吃紧最好换个地方,日积月累Anaconda会占用不小的地方……
下载过程中除了安装位置外,还有两个需要确认的地方。
第一个勾是是否把Anaconda加入环境变量,这涉及到能否直接在cmd中使用conda、jupyter、ipython等命令,推荐打勾。如果不打勾话问题也不大,可以在之后使用Anaconda提供的命令行工具进行操作。
第二个是是否设置Anaconda所带的Python 3.6为系统默认的Python版本,这个自己看着办,问题不大,我是两个全勾上了。
之后就是漫长的等待……
安装完后你的电脑会多出这几个程序:
一路安装完成以后,就可以打开cmd测试一下安装结果。
分别输入python、ipython、conda、jupyter notebook等命令,会看到相应的结果,说明安装成功。(python是进入python交互命令行;ipython是进入ipython交互命令行,很强大;conda是Anaconda的配置命令;jupyter notebook则会启动Web端的ipython notebook)
需要注意的是jupyter notebook命令会在电脑本地以默认配置启动jupyter服务,之后会再谈到这个。
别着急,现在还没完事呢。
如果你现在就猴急猴急地去安装很多packages,你会被conda的龟速感动得声泪俱下,因为Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源有Anaconda仓库的镜像,我们将其加入conda的配置即可。
请在cmd中运行以下代码:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
因为我现在安装的是最新版Anaconda3,其自带的Python版本为3.6,如果我们需要添加2.7版本的Python,可以进行如下操作。(同理,如果有人安装的是Anaconda2需要添加Python 3.x,之后操作里的2.7改为3.6或3.5即可)
conda create -n py27 python=2.7
其中py27是新添加环境的名字,可以自定义修改。
之后通过activate py27和deactivatepy27命令激活、退出该环境。(Linux和OS系统的命令似乎是source activate和source deactivate)
activate py27
在激活新环境后,我们所做的操作便都是在新环境下的,包括pip命令来安装第三方库。我们来试一下pip安装lxml。
pip install lxml
不出所料,失败了……如果你执意要自己解决这个问题,会很复杂,至少我在小白阶段直接放弃了解决这个问题……
那么正确的做法是什么呢?一条命令就够了。
conda install -n py27 lxml
当然了,对于可以正常安装的库,自然可以使用pip命令。
最后,我们通过python -v来查看当前Python的版本。
可以通过conda info -e命令查看已有的环境。
通过conda remove -n env_name --all来删除指定的环境(如果不添--all参数,而是指明某个库名,则是删除该库)。
比如我现在要删除py35这个环境。
可以点开Anaconda Navigator查看已配置的环境和安装的包。
用Conda安装新的包比较轻松,比如要安装scipy
# 安装scipy
conda install scipy
conda的一些常用操作如下:
# 查看当前环境下已安装的包
conda list
# 查看某个指定环境的已安装包
conda list -n python36
# 查找package信息
conda search numpy
# 安装package
conda install -n python36 numpy# 如果不用-n指定环境名称,则被安装在当前活跃环境# 也可以通过-c指定通过某个channel安装
# 更新package
conda update numpy
# 删除package
conda remove numpy
Anaconda自带的Spyder就是个不错的IDE,当然也有许多人偏爱Pycharm。
Python–>Preferences–>Project Interpreter–>Python Interpreter
剩下的IDE配置请参看官网
由于我们现在安装的是Anaconda3,之后又新添加了Python 2.7环境,但是Python 3.6环境中安装了Anaconda自带的科学计算环境,Python 2.7中却没有,那么如何为新添加的环境也装上Anaconda的科学计算包呢,没必要一个一个来,更没有必要再去安装Anaconda2了,只需:
conda install -n py27 anaconda
但是这会安装非常多,非常多,非常多的包,慎用。
我们已经说完了Anaconda中的包管理,那么既然Anaconda中可以使Python 2.x和3.x共存,Jupyter Notebook是否可以呢?
当然可以。
在这里我们不展开来介绍Jupyter Notebook,大家可以先初步了解。多版本的Python或者R等语言,在Jupyter中被称作kernel。
如果想要给Jupyter添加多个Python版本的kernel,有两种做法。
如果这个Python版本已经存在(比如我们刚才添加的py27环境),那么你可以直接为这个环境安装ipykernel包。即:
conda install -n py27 ipykernel
然后激活这个环境,输入:
python -m ipykernel install --user
如果所需版本并不是已有的环境,可以直接在创建环境时便为其预装ipykernel。
如:
conda create -n py27 python=2.7 ipykernel
PS 如果想要在创建新版本环境时直接装上其他库,像这里的ipykernel一样直接附在后面就可以了。之后同样是激活环境并添加kernel。
PPS 这个命令生成的其实是一个JSON文件,可以直接查看并修改。
希望大家从此不再因为选择版本、安装Python、管理环境、添加第三方库(能用conda用conda,不能用conda用pip)、选择IDE(单文件Jupyter,项目组织开Pycharm)等等杂事所困扰,专心于代码。
(当然了,有一些库不论conda和pip都无法直接安装,只能下载.whl,这里不再赘述了,小白同学遇到这种问题的时候,应该也有能力自己解决这种问题了)