从〇到一 轻松学编程

编程入门04:Python第三方包

by 星辉


Posted on 2018年03月05日周一 at 08:39上午 in 教程


从概念上说,Python中的“包”(Package)是模块的容器,其中可以包含一个或多个相关的模块。世界各地开发者基于Python编写的各种软件也是以一种标准的包形式进行分享的,称为“第三方包”。官方专门建立了“Python包索引”(PyPI) https://pypi.python.org/ 用来统一发布第三方包,相当于是Python软件的免费应用市场。于是在Python标准库之上又积累起浩如烟海的“第三方库”,形成了充满活力的开源软件生态系统。如果想利用Python进行真正的编程工作,你应当根据不同的任务选择安装适合的第三方包。

官方推荐使用pip命令来管理Python包,pip其实也是一个软件包,Python 3.4以上已经附带,不必再单独安装。pip包的发布页 https://pypi.python.org/pypi/pip

有些Python包的体积很大,从位于境外的官方源下载需要较长时间。你可以设置从中国大陆的镜像源(例如阿里云)下载软件包,这样速度会快上许多。如果你用的操作系统是Win7-10,请在资源管理器地址栏输入C:\ProgramData打开这个隐藏目录,在其中创建pip文件夹,再在其中创建pip.ini文件并复制粘贴以下内容,即配置好了镜像源:
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[list]
format = columns

以上配置还指定了包列表的显示格式,pip详细配置说明可以在文档中查看 https://pip.pypa.io/en/stable/user_guide/#configuration

现在让我们打开命令提示符窗口(注意打开方式:右击命令提示符图标,选择以管理员身份运行,否则安装包时可能提示没有足够权限)输入以下pip命令查看已安装的包名称及版本:
pip list

你可以看到默认已有两个包:pip和setuptools,它们是用来安装和管理其他第三方包的。

04_pip.png

接下来再尝试输入以下pip命令,安装之前提到过的Spyder:

pip install spyder

包的下载和安装需要花费一段时间,当提示完成后你可以再次查看已安装包,会发现实际上增加了几十个包——因为Spyder需要其他几十个第三方包的支持,pip会自动下载并安装所有需要的包。

04_pip_install.png


现在你就可以输入spyder3命令启动Spyder了,启动时请选择允许访问网络(Spyder会联网检查版本更新),这个命令对应的可执行文件是Python安装目录下Scripts\spyder3.exe,你可以将其发送到桌面快捷方式,点击桌面图标即可启动。今后我们将会抛弃简陋的IDLE,改用Spyder这个很好很强大的开源IDE继续学习进程。

04_spyder.png

如果Spyder发布了新版本,使用加-U参数的pip install命令即可安装新版——不过镜像源同步新版本需要一些时间,如果你想第一时间安装新版,可以再用-i参数临时指定从官方源下载:

pip install -U spyder -i https://pypi.python.org/simple

以上演示了pip命令的基本操作,你可以随时使用这个工具来获取Python生态圈中数以万计的第三方包,令编程像搭积木一样方便快捷。

编程小提示:IPython

你可能已注意到Spyder默认布局右下角的交互模式面板(使用主工具栏的面板最大化按钮可以让某个面板占满整个工作区),其中的提示符和官方版的并不一样,因为Spyder集成了一个提供增强版交互模式的第三方包——IPython。你可以输入“?”来查看IPython的帮助信息(或是在“?”之后再输入特定变量名查看具体帮助信息),可以按上下方向键切换输入过的命令,还可以在任何时候按Tab键启用代码自动补全并根据输入更新代码提示,操作比IDLE省力很多。

04_spyder_ipython.png

IPython还提供了一些“魔法”命令,如清除屏幕内容命令cls、重置名称空间命令reset等都很好用。

此外你只要先输入一个“!”,就可以直接运行任何可执行程序例如pip,不必再打开操作系统的命令提示符窗口了。
In [3]: !pip list
Package                  Version  
------------------------ ---------
alabaster                0.7.10   
astroid                  1.6.1    
Babel                    2.5.3    
bleach                   2.1.2    
certifi                  2018.1.18
chardet                  3.0.4    
cloudpickle              0.5.2    
colorama                 0.3.9    
decorator                4.2.1    
docutils                 0.14     
entrypoints              0.2.3    
html5lib                 1.0.1    
idna                     2.6      
imagesize                1.0.0    
ipykernel                4.8.2    
ipython                  6.2.1    
ipython-genutils         0.2.0    
isort                    4.3.4    
jedi                     0.11.1   
Jinja2                   2.10     
jsonschema               2.6.0    
jupyter-client           5.2.2    
jupyter-core             4.4.0    
lazy-object-proxy        1.3.1    
MarkupSafe               1.0      
mccabe                   0.6.1    
mistune                  0.8.3    
nbconvert                5.3.1    
nbformat                 4.4.0    
numpydoc                 0.7.0    
packaging                17.1     
pandocfilters            1.4.2    
parso                    0.1.1    
pickleshare              0.7.4    
pip                      9.0.1    
prompt-toolkit           1.0.15   
psutil                   5.4.3    
pycodestyle              2.3.1    
pyflakes                 1.6.0    
Pygments                 2.2.0    
pylint                   1.8.2    
pyparsing                2.2.0    
PyQt5                    5.9.2    
python-dateutil          2.6.1    
pytz                     2018.3   
pyzmq                    17.0.0   
QtAwesome                0.4.4    
qtconsole                4.3.1    
QtPy                     1.3.1    
requests                 2.18.4   
rope                     0.10.7   
setuptools               28.8.0   
simplegeneric            0.8.1    
sip                      4.19.8   
six                      1.11.0   
snowballstemmer          1.2.1    
Sphinx                   1.7.1    
sphinxcontrib-websupport 1.0.1    
spyder                   3.2.7    
testpath                 0.3.1    
tornado                  4.5.3    
traitlets                4.3.2    
urllib3                  1.22     
wcwidth                  0.1.7    
webencodings             0.5.1    
wrapt                    1.10.11  

In [4]: 

想要详细了解IPython的增强功能,请查看在线文档 http://ipython.readthedocs.io/en/stable/



No one has commented yet.

Leave a Comment

HTML语法: 禁用