引言:这是《Python for Excel》的第二章《Chapter 2:Development Environment》中讲解Anaconda Python的部分。工欲善其技,必先利其器。了解和熟练操作好的开发工具,在学习和使用Python时就会更加专注于其自身,并且也有助于Python开发。
在此特别说明,这里发布的文章仅仅为学习笔记,略去了书中一些我认为无关紧要的文字,或者稍作修改,并且有些地方加上了我自己学习感悟,有兴趣的朋友可以对照原书研读。此外,如有侵权,留言告知,我会删除。
在开始学习Python的基础知识之前,首先需要相应地设置计算机。要编写VBA代码或PowerQueries,只需启动Excel并分别打开VBA或PowerQuery编辑器即可,但是在使用Python之前,需要做一些工作。
我们将从安装Anaconda Python发行版开始,除了安装Python之外,Anaconda还能够让我们访问AnacondaPrompt和Jupyter笔记本,这是我们在本书中使用的两个基本工具。Anaconda提示符是一个特殊的命令提示符(Windows)或终端(macOS);它允许我们运行Python脚本和其他我们将在本书中遇到的命令行工具。Jupyter笔记本允许我们以交互方式处理数据、代码和图表,这使它们成为Excel工作簿的有力竞争者。在使用Jupyter笔记本之后,我们将安装VisualStudio Code(VSCode),这是一个功能强大的文本编辑器。VSCode非常适合编写、运行和调试Python脚本,并附带集成终端。图2-1总结了Anaconda和VSCode中包含的内容。
图2-1:开发环境
Anaconda Python发行版
Anaconda可以说是用于数据科学的最流行的Python发行版,并预装了数百个第三方软件包:它包括Jupyter笔记本和本书将广泛使用的大多数其他软件包,包括pandas、OpenPyXL和xlwings。Anaconda个人版免费供私人使用,并保证所有包含的软件包相互兼容。它安装在单个文件夹中,可以轻松地再次卸载。安装之后,我们将在Anaconda提示符上学习一些基本命令,并运行一个交互式Python会话。在用Conda环境结束本节之前,我们将还会了解包管理器Conda和pip。
安装
转到Anaconda主页:
https://www.anaconda.com/products/individual
下载最新版本的Anaconda安装程序(个人版)。确保下载Python3.x版本的64位图形安装程序。下载后,双击安装程序开始安装过程,并确保接受所有默认设置。
安装了Anaconda后,我们现在可以开始使用Anaconda提示符。让我们看看这是什么以及它是如何工作的!
Anaconda提示符
Anaconda提示符实际上只是Windows上的命令提示符和macOS上的终端,但已设置为使用正确的Python解释器和第三方软件包运行。Anaconda提示符是运行Python代码的最基本工具,在本书中,我们将广泛使用它来运行Python脚本和各种包提供的各种命令行工具。
如果你从未在Windows或macOS上使用过命令提示符或终端,请不要担心:你只需要知道一些已经给你带来强大功能的命令。一旦习惯了,使用Anaconda提示符通常比单击图形用户菜单更快、更方便。
Windows
单击“开始”菜单按钮并开始键入Anaconda提示符。在出现的条目中,选择Anaconda提示符,而不是AnacondaPowershell提示符。用箭头键选择它,然后按Enter键,或者用鼠标单击它。也可以在“开始”菜单的Anaconda3下找到该命令。
Anaconda提示符的输入行将以(base)开头:
(base)C:usersexcelperfect>
下面是一些常用命令。
dir
列出当前目录中的文件
cd pathtodir
改变目录(相对的)
cd C:pathtodir
改变目录(绝对的)
D:
改变到D盘
cd ..
改变到父目录
↑(向上箭头)
重复前面的命令
文件扩展名
默认情况下,Windows和macOS分别在Windows资源管理器或macOS Finder中隐藏了文件扩展名。这会使使用Python脚本和Anaconda提示符变得更加困难,因为它们需要引用包括扩展名在内的文件。使用Excel时,显示文件扩展名还可以帮助你了解是处理默认xlsx文件、启用宏的xlsm文件还是任何其他Excel文件格式。通过下面的操作可以使文件扩展名可见:
Windows
打开文件资源管理器并单击“视图”选项卡。在“显示/隐藏”组下,激活“文件扩展名”复选框。
Python REPL:交互式Python会话
通过在Anaconda提示符下运行Python命令,可以启动交互式Python会话:
我们来玩一会儿吧!注意,在交互式会话中>>>意味着Python需要你的输入;你不必输入这个>>>。然后在以>>>开头的每一行键入代码,并按Enter键确认:
>>> 3 4
7
>>> “python“ * 3
‘python pythonpython’
这个交互式Python会话也称为PythonREPL,它代表read-eval-print循环:Python读取您的输入,对其求值,并在等待下一个输入时立即打印结果。还记得在上一章提过的Python之禅吗?现在,你可以阅读完整版本,了解Python的指导原则(包括微笑)。只需在命令行中键入下面的语句后按Enter键即可运行:
>>>import this
要退出Python会话,键入quit(),然后键入Enter键。或者,在Windows上按Ctrl Z,然后按Enter键。在macOS上,只需按Ctrl-D键,无需按Enter键。
包管理器:Conda和pip
在上一章中,我已经讲了一些关于Python包管理器pip的内容:pip负责下载、安装、更新和卸载Python包及其依赖项和子依赖项。虽然Anaconda与pip一起工作,但它有一个内置的替代包管理器,名为Conda。Conda的一个优点是,它可以安装的不仅仅是Python软件包,还包括其他版本的Python解释器。简单回顾一下:包向Python安装中添加了标准库中未包含的其他功能。pandas就是这样一个包的例子。
Conda VS. pip
对于Anaconda,你应该通过Conda安装所有可以安装的软件,并且只使用pip安装Conda找不到的软件包。否则,Conda可能会覆盖以前使用pip安装的文件。
下表概述了最常用的命令。这些命令必须输入到Anaconda提示符中,允许你安装、更新和卸载第三方软件包。
表:Conda和pip命令
例如,要查看Anaconda发行版中已有哪些软件包,键入:
(base)> conda list
让我们首先安装plotly和xlutils,它们是通过Conda提供的软件包:
(base)> condainstall plotly xlutils
运行此命令后,Conda将向你显示它将要执行的操作,并要求通过键入y并单击Enter进行确认。完成后,你可以使用pip安装pyxlsb和pytrends,因为这些软件包无法通过Conda获得:
(base)> pip installpyxlsb pytrends
与Conda不同,当点击Enter键时,pip将立即安装软件包,无需确认。
Conda环境
你可能想知道为什么Anaconda提示符会在每个输入行的开头显示(base)。它是活动的Conda环境的名称。Conda环境是一个单独的“Python世界”,其中包含特定版本的Python和一组已安装的具有特定版本的软件包。为什么这是必要的?当你开始并行处理不同的项目时,它们将有不同的要求:一个项目可能使用Python3.8和pandas0.25.0,而另一个项目可能使用Python3.9和pandas1.0.0。为pandas0.25.0编写的代码通常需要更改才能使用pandas1.0.0运行,因此不能只升级Python和pandas版本而不更改代码。为每个项目使用Conda环境可以确保每个项目都以正确的依赖关系运行。虽然Conda环境是特定于Anaconda发行版的,但在名称为virtualenvironment的每个Python安装中都存在这一概念。Conda环境更强大,因为它们使处理不同版本的Python本身更容易,而不仅仅是包。
当阅读本书时,你不必更改Conda环境,因为我们将始终使用默认的基本环境。然而,当开始构建真正的项目时,最好为每个项目使用一个Conda或虚拟环境,以避免它们之间的依赖关系之间的任何潜在冲突。
在解开了Conda环境的谜团之后,现在是时候介绍下一个工具了,我们将在本书中大量使用它:Jupyter笔记本!