不论是学习哪一门编程语言,在入门之初,没有什么比让程序真正的运行跑起来更令人鼓舞的了。相比之下,程序报错或者压根就没运行起来所带来的挫败感却是能让人一言不合就实现「从入门到放弃」的跨越。
让我们的程序跑起来的第一步不是写下一句能让程序运行的代码,而是环境配置。纵观所有的编程语言课程、资料甚至是教材,无一例外第一课就是要教会读者或使用者如何将环境搭建起来。
这就好比是要学做菜,就算你食材甄选面面俱到、柴米油盐酱醋茶一样不落下,但如果你连最基本的锅、铲和刀等这些基本的厨具都没有,又何来烹饪这一说?
所以,搭建环境就好比做菜时的厨具,建立在厨具的基础上你才能开展你的曼妙「创造」。
1. Python 安装与环境配置
本节主要涉及 Windows 和 macOS 的安装和配置内容。Linux 平台的安装过程这里就不过多涉及,如果你已经能熟练使用 Linux,那就说明你肯定会自己安装 Python 了。
1.1 官网安装
点击进入到官网的 下载页面 后选择对应的 Python 版本就可进行下载。

这里需要注意,虽然现在 Python 已经出到 3.8 版本了,可是有的第三方库仍只是支持低版本的 Python,虽然用来基础学习没有什么问题,但是如果以后调用不支持第三方库可能会报错,所以这里需要自己权衡一下。
所以目前我使用的是 Python 的 3.7.x 版本。选择进入到相应版本的下载页后,直接拉到页面最下方,选择相应的系统安装包下载(Windows 选择 executable installer
,macOS 选择 installer
)。

下载好对应的安装包之后,就可以进一步安装了。
1.1.1 Windows 平台的安装
Windows 用户需要注意的是,在安装过程中,一定要把 Add Python to Path 的选项给勾选上。如果不勾选添加路径的选项,在后续使用中不可避免地会出问题。

勾选后就默认安装路径即可。
安装完成后打开按下 win+R
输入 cmd
打开 CMD
命令行工具,输入 python
——回车,进入到交互环境即说明安装成功。

1.1.2 macOS 平台的安装
macOS 用户安装就方便许多了,不需要过多地操作,只需要一直默认下一步即可。

需要注意的是,由于 macOS 本身就内置了 Python2,所以如果你在终端里直接输入 python
的话可能进到的是 Python2 的交互式环境。所以这时候你需要输入 python3
才能真正进入到我们教程使用的 Python3 环境中。
如果你已经将内置的 Python2 给卸载,那么直接输入 python
就可以进入到交互式环境中。

1.2 发行版的安装
Python 的发行版有很多,在本教程中,我们主要使用其中一个发行版,那就是 Anaconda。
Anaconda 是一个专注于科学计算的 Python 发行版,当中内置了许多大数据、视觉计算、科研中常用的一些第三方库;并且它还集成了包管理器、虚拟环境管理等多种功能。
选择发行版最主要的原因在于:发行版集成了 Python 本体所不具有的一些功能、依赖库等,降低前期入门安装配置的时间成本。而 Anaconda 同时还配置了相应的 IDE(Integrated Development Environment,集成开发环境),能够让使用者快速上手。
但是 Anaconda 的缺点也很明显:由于预置了许多第三方库,所以体积庞大、运行速度慢等。
在方便和运行速度两方面上,我认为初学的人还是更偏向于方便为好。相信各位现在的电脑也不是那种十分羸弱的配置了,等水平提高了再考虑去搭建其他环境也不迟。
进入到 Anaconda 对应的 下载页面,然后选择对应的平台进行下载安装包即可。

打开安装包之后一直默认下一步安装即可。
不过 Windows 用户还是要注意,出现「Add Anaconda to my Varaiable Environment」的选项时记得勾选,这样就能顺便帮你把 Anaconda 的环境变量配置好,避免花时间在环境变量配置上。而 macOS 用户安装完成后,打开终端工具,输入 conda init
进行环境的初始化即可。
之后按前面一部分所说的,运行 CMD 或 Terminal 并输入 python
或 python3
命令进入到交互式环境就说明安装成功了。

安装成功之后 Windows 用户可以直接从「开始」菜单栏中打开 Anaconda;而 macOS 可以按下 cmd+space
打开 Spotlight,输入 anaconda
后并打开,然后可以选择 IPython、Jupyter Notebook、Spyder 或 VS Code 任意一款文本编辑器;但为了保持课程教学环境的统一,我们后面会使用 VS Code 作为我们本次课程的编辑器来运行 Python 代码。

1.3 在线云环境
如果你已经懒到不想装安装任何东西,又想要「开箱即用」,我在这里也能满足你——
除了安装本地版之外,你如果想更快地开始动手学习,而不管什么安装配置之类的东西,那么我就推荐你使用在线的云环境,这些云环境都是基于 Jupyter Notebook 而构建,省去了当中的各种配置过程。关于云环境的一些介绍可以参考我的一篇文章。
这些云环境本质其实是和数据竞赛相结合在一起的,但是作为我们用来练习 Python 的环境也是十分友好且快速的。这里就推荐国内的云环境即可,Kaggle、Colab 之类的国外云环境就不推荐了。

以上三种安装运行 Python 的方式任君选择,但是我个人推荐第二、第三种方式:
- 如果你是打算在自己电脑上运行,那就推荐第二种。
- 如果你不想安装或者用公司电脑想上班摸鱼学习本次教程,那就推荐第三种方式。
2. Conda 与 pip
Conda 和 pip 都是可以用来管理 Python 第三方库的管理工具,但是有时候 conda 不能装上的包就用可以用 pip 来装,两者相互补充使用。更多时候我会用 conda 来创建虚拟环境,而使用 pip 安装第三方库或依赖包,我也建议大家像我这样做。
编者按:所谓「第三方库」,你可以理解为已经写好特定功能的代码仓库。当你需要实现某些功能时,直接调用第三方库里的代码资源即可,不需要自己再从头写代码,节省了大量开发成本。本教程后面也会多次提及和应用代码库,此处先带你了解如何安装和调用第三方库。
2.1 Conda 常用命令
Anaconda 附带的 conda
命令除了用来管理各种 Python 的相关包和库以外,还能用来创建虚拟环境等。之后所有操作都可以通过命令行地方式来实现。这里给出常用的命令以及功能描述,详见表格:

不过这里我还是带大家建立一个虚拟环境用于学习,避免原始环境被搞乱从而导致某些依赖错误。
所谓的虚拟环境其实就是创建一个新的 Python 运行环境,在新的环境中用来爬虫、大数据分析等不同项目,这些项目用不同环境隔离能有效避免项目或工程文件之间相互影响;同时,万一发生什么问题,直接删除虚拟环境重新创建一个即可。
在任意一系统的命令行工具(Windows 使用 CMD 或者 Powershell,macOS 使用终端)里输入创建虚拟环境的命令并取名为 python_basic
,之后只要输入 y
即可安装完成。

然后,Windows 使用 CMD 中输入 activate python_basic
,或在 macOS 的终端内输入 source activate python_basic
。
最后看到命令行中出现虚拟环境的名字后就说明激活成功了,之后我们在当中输入 python
即可进入到 Python 的交互式解释器中。

Conda 命令看上去很多,但大部分都是 conda
加上对应的英文单词,只要你有一点点中学英语的水平,很快就可以掌握。当然,最重要的是「用」,而不是记。
要是实在很懒,记得用 conda --help
打小抄。
2.2 Pip 常用命令
Pip 主要用于 Python 包或库的管理,如下载安装、卸载等,可能在功能上不如 conda 那么全面。
需要注意的是,如果你的电脑中已经有了一个 Python2,那么 pip 默认会安装到 Python2 的环境下;如果你使用的是 Python3 那就需要使用 pip3 才能将包安装到 Python3 的环境当中;如果你的电脑中只有一个 Python3,那么用 pip 安装就会安装到 Python3 的环境中。
这里 pip 的许多命令和 Conda 的用法其实都是大同小异,这里我就列出常用的几个:

2.3 镜像源与依赖安装
「众人拾柴火焰高」,在使用 Python 的过程中我们不可避免的要使用到别人写好的第三方库或包,从而来丰富自己的程序、提高效率,所以我们需要进一步配置相应的镜像源(mirror)。
由于大多数第三方库都上传到了国外的中央仓库(如:Java 系的 maven、R 语言的 CRAN 等),而 Python 的中央仓库 Pypi 同样也是架设在国外。因此如果我们直接通过中央仓库安装第三方依赖库或包时,受限于网络原因速度会十分慢。
所谓的镜像源就好比是一个中转站,它将中央仓库的东西留存了一份在自己当地。因此我们就不需要直接访问中央仓库,转而访问离我们较近且网络较为通畅的镜像源。国内一些主流的镜像源有清华源、中科大源、阿里源等,无论你选择其中的哪一个镜像源最后的下载速度都不会太慢,这里我就以清华源镜像为例。
我们直接根据清华大学的开源软件镜像站里 Pypi 镜像使用帮助 的文档操作。
Windows 可以打开 cmd,而 macOS 则打开终端,接着我们首先需要将 pip 进行更新:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
该命令是先临时性通过清华源镜像将 pip 自身进行更新,然后再输入:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
该命令使得本机所有用到 pip 的地方全部都走清华镜像源。
随后我们可以切换到前面已经创建好的 python_basic
虚拟环境中,然后输入 pip install pandas
安装用于数据分析的 pandas
就会发现下载速度已经大幅度提升。
以后我们如果需要安装某些第三方库,首先需要切换到对应的虚拟环境,然后再使用 pip install <package>
安装。
3. 运行 Python
将环境基本配置成功后,可以开始我们的 Python 之旅了。
运行 Python 的方式很简单,有两种:
- 交互式 REPL 环境
- 执行整个脚本
3.1 REPL 环境
所谓的 REPL 全称为「Read Eval Print Loop」,即读取、求值、输出这三个过程的循环。这又被称为交互式解释器。
简而言之就是,你输入一条命令,计算机就会立刻给你反馈(无论成功执行还是报错)。这就是人和机器在做交互。
在安装好 Python 之后打开终端或者命令行 cmd,输入 python
后当看到 >>>
这样的符号时就说明我们现在正处在一个 REPL 环境之中。
当然如果你如果后续有用到 IPython 或 Jupyter Notebook 的话,那么这个符号可能会有所变化,变成 In [#]:
和 Out [#]:
;但是这也完全不用担心,仍然还是处在一个 REPL 环境之中。
REPL 及其适合新手来使用,因为能通过执行一条代码或一段代码就能立刻获得反馈,因此在我看来衡量一门语言是否适合想要学习编程的小白或者新手,那么有无 REPL 毫无疑问是一条普适的标准。
所以在后续章节之中,我们大多数时候都会通过 REPL 环境来进行学习。
3.2 执行整个脚本
执行整个脚本从字面上的理解也很直观,就是将写好的 .py
运行。
假设我现在有一份写好的 Python 文件为 greeting.py
,运行这个文件的方式一种是进入到 REPL 环境中一行一行执行,另一种方式就是进入到终端或者命令行工具中,输入 python greeting.py
来执行整个文件。
执行整个文件的过程其实也是和 REPL 那样会被底层的解释器一行一行去执行,但不同的是执行整个脚本的过程不会每执行一条就返回一条结果,而是执行完成后返回最终的结果。如:
def greet():
print("Hello, world")
def main():
greet()
if __name__=='__main__':
main()
这里最后执行的步骤是由 if __name__=='__main__'
这部分开始运行,执行 main()
,而 main()
中又有一个 greet()
函数,最终输出的结果是 greet()
函数中的 Hello, world
字符串。
在后续的章节中我们也会经常看到这样的形式,这时我们就需要执行整个脚本文件。
不过这不用担心,现在很多智能的开发环境或者编辑器都帮我们做好了运行的开关,我们只要写好代码后点击相应的运行图标即可将整个脚本执行。
4. VS Code 简单配置与使用
了解了 Python 的运行过程之后,最重要的就是选择自己喜欢的 IDE 了。
IDE 除了提供一个供你运行代码的地方之外,还集成了诸如自动补全、版本控制等功能。形象理解就是:不使用 IDE 写代码就好比骑个老凤凰单车,使用 IDE 写代码就好比驾驶着有空调有音乐的四轮汽车。
除了前面介绍的 IDE 之外,像 Sublime Text、Atom 和 Pycharm 等也都是支持 Python 运行环境。
本次课程我们主要选择目前流行度很高的、由微软出品的 VS Code,VS Code 本质上来说是一款编辑器(可以理解为记事本),需要通过插件来集成其他功能。
从 Anaconda Navigator 打开 VS Code 之后首先第一件事就是到插件框输入 chinese
搜索并安装汉化包:

然后再依次输入 anaconda
、python
搜索到对应的 Anaconda 扩展和 Python 集成插件安装,这就完成了我们的初步配置。
VS Code 通常主要是围绕一个「工程项目」来进行,所谓的工程项目就是你所有的源代码、资料以及操作都是在一个大的文件夹下进行。
因此我们新建一个项目文件之后,在当中随便创建一个 hello.py
文件,在当中随便输入一行命令在 Windows 系统按 ctrl+s
保存,而 macOS 系统输入 command+s
保存。
由于我们已经事先装好了 Anaconda 扩展插件,因此在这个文件中可以看到左下角部分有显示关于 Python 版本号的相关信息,我们通过点击这一部分来进行虚拟环境的选择,选择完成之后我们点击右上角绿色的运行按钮,就通过指定虚拟环境的 Python 解释器执行整个 hello.py
文件了。

当然,我们也可以启动 REPL 单行执行,只需要选中对于的代码,点击鼠标右键运行后即可在正下方的控制台看到环境以及对应的执行结果。
- 本教程所有代码附件已上传至云端代码库,请 点击这里 下载。