Python作为一门解释性的程序开发语言(脚本语言),因其简单易学,而且功能强大。在2019年3月份,编程语言流行指数PYPL排行榜中,Python已经超越Java成为最受欢迎的开发语言。
Python在下列几大主流应用领域都广受好评:
· 网络编程,Web应用开发,网络爬虫
· 图形界面开发(GUI开发),游戏开发
· 科学计算,数据分析,机器学习,人工智能
· 系统运维,自动化测试,等等。
Python开发环境Python开发环境搭建,一般包含两个环境:一个是Python的核心程序,一个是开发的环境。
1) Python核心程序
Python核心程序,为Python工作必须的模块功能,主要包含:
a) 内置库:不需要单独下载安装,也不需要导入,可直接使用
b) 标准库:不需要单独下载安装,但需要用import导入
c) 解释器:Python代码的解释执行器,如CPython/IPython等
详细解释器内容请参考后续小节。
2) 开发环境,
开发环境,主要提供Python代码编写,管理,调试等功能,但需要调用Python核心程序来执行、调试代码。
常用的开发环境有两大类:
a) 增强型的交互式开发程序,比如说jupyter notebook等,是在IPython解释器上的增强,支持语法高亮、代码智能提示等等功能。
b) 集成开发环境,常见的IDE有Pycharm, VSCode, Sublime Text,…等等。
二、核心程序安装安装Python核心程序有两种方式:纯净安装和打包安装。
1、纯净安装纯净安装,指的是直接安装官方提供的Python核心程序(包括解释器、核心程序、标准模块库等)。
然后再根据自己的需求,下载并安装其它的扩展库。由于Python中涉及到大量扩展库,以及扩展库的不同的版本。
采用纯净安装的话,好处是:可以根据自己的需要来有选择性地安装各种扩展库;缺点是:需要自行安装,比较麻烦。
2、打包安装最常见的打包安装,就是下载Anaconda安装包进行安装。
Anaconda是Python的科学计算发行版,不但已经包含了Python核心程序,而且还包含众多的流行的科学、数学、工程、数据分析的Python扩展包等等。
打包安装的话,好处是:这样可以免去自行安装众多扩展库的麻烦,Anaconda还会自行考虑各种扩展库的版本的兼容性。缺点是:安装了大量的可能用不到的扩展库,占用硬盘空间。
显然,一般的初学者可直接选择Anaconda包安装;如果想要逐步弄明白Python的逻辑框架,也可以选择纯净安装。
3、安装步骤
实际上,纯净安装和打包安装是可以同时共存于你的电脑中,不会产生任何冲突,因为默认会安装在不同的目录下的。
纯净安装步骤下载Python安装包
去官方网站,基于操作系统(Windows或MacOS等),下载合适的Python安装包。
如下图所示,下载Windows系统的Python 3.7.4版本,安装程序包名称为python-3.7.4-amd64.exe。
安装Python程序
1) 双击安装包python-3.7.4-amd64.exe运行
2) 考虑到后面方便性,请勾选Add Python3.7 to PATH,for all users(需要管理员权限),其他的尽量选择默认安装即可。
一般,Python默认安装在用户的应用数据目录下:
C:\Users\xxxx\AppData\Local\Programs\Python\Python37
随着Python一起安装的,除了Python解释器外,还有IDLE交互界面,以及Python相关文档等。
检验和升级
要想验证一下Python是否安装好了,可以进入命令行界面进行验证。
1) 从开始菜单启动命令提示符
2) 查看扩展包
pip程序,是官方的Python包管理程序,输入命令pip list,查看随着Python一起安装的扩展包。由于是纯净安装,看到的扩展包只有pip和setuptools。
还发现pip提示pip版本有新版本,因此接下来可以根据提示升级pip版本。
3) 升级pip包管理程序
输入命令python -m pip install --upgrade pip,以升级pip版本(19.0.319.2.3)。
然后,再根据需要安装其它的扩展包,详情请参考其他小节。
打包安装步骤
下载Anaconda安装包
去官方网站,基于操作系统(Windows或MacOS等),下载合适的Anaconda3安装包。如下图所示,下载Windows系统的包含Python 3.7(64-bit)的Anaconda 2019.07版本,安装程序包名称为Anaconda3-2019.07-Windows-x86_64.exe。
安装Anaconda程序
1) 双击安装包Anaconda3-2019.07-Windows-x86_64.exe运行
2) 考虑到后面方便性,请勾选for all users(需要管理员权限),其他的尽量选择默认安装即可。
一般Anaconda默认安装的目录是:C:\ProgramData\Anaconda3
随Python核心包一起安装的,还有一批应用程序:
· Anaconda Navigator,用于管理环境和包
· Ancaonda Prompt,使用命令行界面来管理环境和包
· Spyder,面向科学开发的IDE
· Jupyter Notebook,使用命令行界面来进行交互编程
检验和升级
要想验证一下Anaconda是否安装好了,可以进入命令行界面进行验证。
1) 打开命令行界面
从开始菜单中,启动Anaconda Prompt,最好使用管理员身份启动(右键菜单),这样避免后续出现权限不足的问题。
2) 查看扩展包。
conda程序,是Anaconda包默认的包管理程序。输入命令conda list,可查看当前安装过的扩展库。你会发现有一大批扩展包,扩展包的位置默认在Anaconda3\pkgs。
3) 升级conda包管理程序
输入命令conda -V可查看当前conda的版本号。
输入命令conda update conda,来升级当前conda程序。如下提示中输入y,回车即可升级(4.7.104.7.12)。
然后,再根据需要安装其它的扩展包,详情请参考其他小节。
三、开发环境安装1、工具选择
正如前面所述,常用的开发工具基本上分为两大类:交互式开发,集成开发环境(IDE)。
1)交互式开发交互式开发,相当于直接在解释器中进行交互,逐条输入Python语句,马上输出运行结果。
最简单地,就是直接用官方解释器CPython进行交互。如下启动Python,逐步输入Python代码,回车即马上执行,输出代码结果。
但是,官方CPython解释器在输入多行语句和复杂语句时不太方便。所以,大多数开发者会选择功能更强大的解释器。
最常用的交互开发工具,当属Jupyter Notebook无疑。Jupyter Notebook开发工具和环境,是基于IPython解释器的一个基于Web浏览器的开发环境,它支持注释/代码混写,支持多行代码编写,也方便项目文件的管理等。
如果你在前面选择的是Anaconda打包安装,随之安装的就有IPython解释器,以及Jupyter Notebook交互工具。
在开始菜单中,运行Anaconda Navigator,你可以看到jupyter Notebook,点击运行(Launch),然后就会打开一个Web浏览器,点击右上角的New->Python3就会建一个Untitled1文件,于是就进入Jupter Notebook交互界面。
现在你可以输入各种Python语句,进行交互开发了,并且可以保存脚本;点击Untitled1,还可以重命名脚本文件。
一般地,交互式开发工具,比较适合于教学和小型程序开发等。
2)集成开发环境对于复杂的大型的Python项目,就需要使用集成开发环境(IDE)了。IDE集成了大型项目需要的功能,除了提供代码编写功能外,还支持项目的管理,协同开发等。
常用的IDE有很多,如PyCharm、VSCode、Sublime Text等。
· PyCharm:号称是最好的Python开发工具,有免费版本也有付费版本。
· VS Code:号称宇宙第一IDE,微软最好的开发工具,通过扩展支持大量的编程语言,同样功能强大,而且学习容易,关键还免费。
· Sublime Text:开源的免费的工具,时不时弹出打赏界面,稍为有点烦。
IDE还提供调试、断点跟踪、临时变量查看等等功能。
2、安装VS Code考虑到IDE的优越性,建议大家使用VS Code IDE进行Python开发。安装VS Code的步骤如下:
1) 下载安装包
在官方网站https://code.visualstudio.com,基于操作系统下载合适的安装包。
2) 双击安装包VSCodeUserSetup-x64-1.38.1.exe运行
3) 选择默认安装即可。
VS Code 默认安装在用户目录下:
C:\Users\xxxx\AppData\Local\Programs\Microsoft VS Code
3、配置VS Code因为VS Code是一个万能的开发IDE,支持很多编程语言的开发。接下来,我们需要配置Python开发。下面,只有第3、4步是必须的,其余可根据需要进行配置。
1)更换颜色主题默认下,VS Code采用白字黑纸的背景以保护眼睛,现在,可以修改为常用的白纸黑字。
点击File>Preferences->Color Theme,会弹出主体选择下拉框,现在选择Light (default light)即可。
2)配置中文界面
默认情况下是英文界面,现在修改为熟悉的中文界面。
点击左下角的扩展Extensions,在搜索框中输入chiense,即会搜索出简体中文语言包:
Chinese(simplified) Language Pack for Visual Studio Code,点击Install,VS Code会自动下载相应扩展,然后提示重启VSCode,即可生效。
3)安装Python扩展
要使用VS Code开发Python程序,还需要安装Python扩展。
如下搜索python extension pack,点击安装即可。实际上,这个扩展包含了如下5个扩展:
· Python:主要用于连接、调试、测试程序
· MagicPython:支持语法高亮
· Visual Studio IntelliCode:代码智能提示
· 以及Jinja, Django等
在安装扩展后,VS Code会提示你需要下载或安装某些包,请点击接受或安装即可。
4)配置解释器
一般情况下,VS Code只负责代码编写等功能,它需要使用底层的Python解释器进行代码执行和调试,因此,需要指定VS Code关联使用哪个Python解释器,特别是当你安装了多个Python版本时。
在安装好上述Python扩展后,一般VS Code会提示你选择解释器。你可以有三种方法来配置解释器:
1) 点击提醒框中Select Python Interpreter按钮
2) 点击VS Code左下角的Select Python Interprter
3) 快捷方式Ctrl Shift P,输入select interpreter
然后,在弹出来的选项中,单击选中合适的Python解释器即可。如下所示,因为我只安装了Python核心程序,所以只有一个选项。
如下所示,我在MacOS中安装了多个Python版本,所以Select Interpreter中会显示多个选项,以供选择。
四、扩展包管理
Python的功能之所以强大,就在于Python中提供了大量的可扩展的包,这些包可以根据需要进行随时安装和使用,以适应大量的业务场景。比如:
· Pandas:提供数据集的处理和分析功能
· Matplotlib:提供图形可视化功能
· Pygame:提供游戏开发功能
· Tkinter:提供图形界面GUI的开发功能
等等。
为了实现扩展包的有效管理,Python提供了专门的包管理程序,用于包的查询、安装、更新、删除等操作。Python中的包管理工具有两个:pip(Python官方提供)和conda(Anaconda提供)。
类似于java的maven,RedHat中的yum。
1、pip工具pip是常用的Python自带的官方的包管理工具,在安装Python时会自动安装好,可以用来很方便地安装和管理各种三方库。
pip使用命令操作,非常方便,而且还能自动解决包依赖问题。在使用pip时,需要联外网才能下载并安装扩展包。
可以使用命令pip -h来显示pip的使用命令,以及使用pip -V显示pip的版本。
需要注意的一点是,如果你电脑上安装了 python 2.x 和 3.x 两个版本的话,则 pip -V默认显示的是2.x版本,要使用pip3 -V查看3.x 对应的版本。
常用的pip命令如下:
>pip -h 查看帮助
>pip –V 检查pip的版本号
>pip list 查看已经安装的包
>pip list --outdated 查看哪些包需要更新
>pip show Somepackage 查看已安装的包的信息
>pip install --upgrade pip 升级pip自己到最新版本
>pip install Somepackage 安装指定的扩展包
>pip install --upgrade Sompackage 升级指定的扩展包
>pip uninstall Sompackage 卸载包
pip扩展库的默认位置在Python37\Lib\site-packages目录。
2、conda包管理如果安装了Anaconda,则提供了conda包管理工具。打开Anaconda Prompt运行如下命令。
常用的conda命令如下:
> conda list 查看已经安装的包
> conda search search_term 搜索并显示安装包
> conda install Somepackage 安装包,会自动安装依赖项。
> conda remove Somepackage 卸载包
> conda update Somepackage 升级指定的扩展包
> conda upgrade --all 批量更新所有扩展包
conda安装的扩展库默认位置在anaconda3\pkgs下。
3、工具比较两个包管理工具的功能基本相同,命令比较如下表:
相比之下,conda命令更简洁,也更强大些。比如conda提供conda update --all命令,一条命令实现所有包的升级。
4、VSCode中随用随装我最喜欢的安装扩展包方式,就是在VS Code中随用随装。
在VS Code中,下方有一个面板,其中有终端命令行界面,是可以直接输入命令行的。
如下所示,VS Code关联的是conda中的Python解释器(见右下角);在代码中,我使用了pandas和numpy扩展包;因此,在VS Code下的终端界面中,输入了conda install pandas命令来安装特定扩展包,类似可使用cond install numpy安装numpy扩展包。
另外一个示例,如下图所示,我是直接使用Python核心解释器的,此时,你就需要使用pip来安装扩展库。
这样,可以根据需要,随时安装相应的扩展包,也不用切换到相应的命令行界面。
在数据分析领域,经常需要使用如下扩展包,可以练习一下如何安装如下的扩展包:
五、Python解释器Python是一门解释器语言,所有的代码都必须通过解释器执行。Python源代码会逐条进入解释器,由解释器执行后再输出结果。
Python解释器有多种实现方式,有用C实现的,有用Java实现的等等。比较常见的有CPython,IPython等。
1、CPython(Cython)这是官方默认的Python解释器,用C语言写的。当执行Python代码时,CPython会将代码转化成字节码(bytecode)。
默认情况下,你在命令行中启动Python,就进入了CPython解释器的交互界面。
CPython用>>>作为提示符。
2、IPython基于CPython之上的一个加强版交互式解释器,执行代码时和CPython完全一样。但支持语法高亮,支持变量、模块、函数、类的自动补全,支持shell命令,内置许多特殊功能函数,比如%pwd显示当前目录,%env显示环境变量等。
交互式开发工具Jupyter Notebook,使用的就是IPython解释器。
IPython用In [序号]:作为提示符。
3、PyPy这个是用Python语言本身写成的解释器,PyPy会把代码转化成机器码,所以可显著提高Python代码的执行速度。
不过,同样的代码在PyPy执行和在CPython执行,其执行结果会有不同。
4、Jython用Java实现的解释器。Jython允许把Java的模块加载到python模块中使用。Jython使用了JIT技术,运行程序时会先转化成Java字节码,使用使用JRE执行;程序还可以把Python代码打包成jar包。
5、IronPython用C#实现的解释器,可以用在微软.NET平台上,直接将Python代码编译成.Net字节码。
六、虚拟环境管理当前,由于Python的版本在不断升级,而且Python3并不完全是后向兼容的,Python2中的一些语句在Python3中不能够直接使用。典型的比如打印print,在Python2中是一条print语句,但在Python3中却是一个函数print()。
>>>print "hello world" #Python2中这样使用
>>>print("hello world") #Python3中这样使用
这会导致在Python升级后影响部分Python程序的运行。为了解决定个版本不兼容的问题,Python引入了虚拟环境(virtualenv)这个概念,即允许Python的多个版本共存,而且不同的Python程序可以在不同的虚拟环境中运行,互不影响。
所以,虚拟环境是用来隔离Python项目/程序的,不同的虚拟环境中可以有不同版本的Python库。
Python中可以虚拟环境管理有两种方式:一种是virtualenv,一种是conda。
1、Virtualenv管理默认情况下,Python并没有安装虚拟环境管理工具,需要自行安装虚拟环境,以及虚拟环境管理工具。
这个比较麻烦,所以本文档暂不描述。
2、conda管理如果安装过anaconda包,则已经安装好虚拟环境,而且会自动创建一个叫做base的虚拟环境名。虚拟环境目录如下:
C:\ProgramData\Anaconda3\envs(Windows系统)
/Users/xxxx/anaconda3/envs(MacOS系统)
下面使用conda来演示虚拟环境的管理。
查看可用环境>conda env list
列出你创建的所有可用的虚拟环境名称。名称前带有一个星号(*)的,表示是当前正在使用的虚拟环境。
一般,conda下有一个默认的虚拟环境叫base。
创建环境>conda create –n py2
这样就在环境envs/py2下创建了一个虚拟环境,名为py2,不过默认的Python版本是Python3。
如果想创建指定的Python 2.7版本虚拟环境,则可以使用下列命令:
>conda create -n py2 python=2.7
进入环境虚拟环境创建后,就可以进入虚拟环境,或叫激活虚拟环境。
>conda activate py2
进入环境后,就会在提示符中看到带括号的环境名称。
进入虚拟环境后,就可以使用conda来安装所需要的特定版本的扩展库。
导出环境现在,你已经在虚拟环境中安装了特定版本的包或库。如果想共享你的虚拟环境包,以便其他人安装并使用你的Python程序,就可以导出你的环境中所用到的库的版本。
>conda env export -f mypy2env.txt
这样就将环境中所用到的所有包的名称,以及版本都写入了该文件。
离开环境如果想离开当前的虚拟环境,则可以使用命令
>conda deactivate
这样就离开当前环境,进入到默认的虚拟环境base。
使用环境现在,如果你要使用其他人的虚拟环境和程序,就可以创建和他一样的虚拟环境。
>conda env create –f mypy2env.txt
这样,就创建了一个新虚拟环境,环境中包含了文件中列出的同样版本的包或扩展库,就可以正常地运行他人的Python程序了。
删除环境如果你不想使用自建的环境了,那么先离开此环境,然后就可以删除此环境。
>conda env remove -n py2
25
,