编程入门04:Python第三方包

上一篇:编程入门03:Python模块与库

从概念上说,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/

下一篇:编程入门05:Python流程控制

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容