如何使用Python套件

Python软件包使您可以分解大型系统并以一致的方式组织其模块,以便您和其他人可以有效地使用和重用。 Python的座右铭是“包括电池”,这意味着它在标准库中预装了许多有用的软件包。

但是,您也可以利用许多出色的第三方软件包。 在本教程中,您将学到所有关于什么软件包的确切信息,如何从软件包中导入模块,探索Python标准库中的内置软件包以及安装第三方软件包的所有知识。

什么是包裹?

在讨论软件包之前,让我们讨论模块。 模块是带有* .py扩展名的源文件,您(和其他所有人)在其中放置构成程序的函数和类。 包是Python的分层名称空间概念的体现。 引用Python Zen:

“命名空间是一个很棒的主意-让我们做更多的事!”

要查看整个Python Zen,请在Python交互式会话中输入import this

import this

The Zen of Python, by Tim Peters



Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

命名空间有助于组织代码并防止命名冲突。 当多个人一起工作或使用其他人开发的软件包时,这一点至关重要。

包代表子包和模块的层次结构,而子包和模块是文件的层次结构,而层次结构不必基于文件系统,其中包和子包是目录和子目录。 它比这灵活得多。

示例包

让我们看一下名为“ ansible”的程序包。 它不是标准库中的软件包。 稍后您将看到如何查找和安装第三方软件包。 现在,让我们检查一下目录文件结构。

这些软件包通常会安装到Python解释器的site-packages目录中,该目录位于“ lib”下的某个位置(取决于版本,操作系统和发行版)。 在Mac上,对于Python 2.7,它将位于“ <解释器根目录> /lib/python2.7/site-packages”中。 这是“ ansible”包的组织方式:

tree ansible -L 1

ansible

├── __init__.py

├── cli

├── compat

├── config

├── constants.py

├── errors

├── executor

├── galaxy

├── inventory

├── module_utils

├── modules

├── parsing

├── playbook

├── plugins

├── template

├── utils

└── vars



15 directories, 2 files

有两个模块和15个目录。 每个目录都是主要ansible包的子包。 在ansible / utils目录中,我们可以看到它包含其他模块,甚至还有一个子包:

tree ansible/utils -L 1

ansible/utils

├── __init__.py

├── boolean.py

├── cmd_functions.py

├── color.py

├── debug.py

├── display.py

├── encrypt.py

├── hashing.py

├── listify.py

├── module_docs.py

├── module_docs_fragments

├── path.py

├── shlex.py

├── unicode.py

└── vars.py



1 directory, 14 files

搜索路径

导入模块时,Python将根据搜索路径(开始搜索的目录列表)通过搜索算法。 搜索路径是sys.path可用目录的列表,您可以动态地对其进行操作(在搜索路径中添加,删除或移动项目)。 site-packages目录始终存在。

要从ansible / utils导入path.py模块,您需要使用以下命令:

import ansible.utils.path

如果您还想使用标准的os.oath模块,请使用以下命令:

import os.path

现在,您可以使用一个或两个路径模块,而不会因为它们所属的名称空间不同而发生冲突。

探索标准库

标准库有很多软件包。 每当您需要完成某些任务而又不确定如何完成时,都值得探索它。 对于任何通用任务,如数学,shell集成,OS集成,字符串处理,网络和通用文件格式,很有可能在标准库中提供设计良好,性能良好且经过测试的软件包。

您真的可以信任标准库软件包,因为进入标准库非常重要。 该程序包要么是由Python的核心开发人员设计的,要么经过了严格的审查,并在进入标准库之前经常在现场广泛用作第三方库。

这是按主题组织的标准库中的所有软件包

聚酰亚胺

标准库很棒,但是您通常会需要一些非标准的特殊功能。 这并不意味着您必须从头开始编写它。 Python拥有一个活跃的社区,可以自由开发和共享许多代码。 输入PyPI-Python包索引 。 PyPI托管所有公开可用的软件包,并提供一站式浏览服务。

浏览PyPI

PyPI以可浏览的索引组织软件包。 您可以按主题,环境,框架,开发,状态,目标受众,许可证,自然语言,编程语言(是的,有支持多种编程语言的Python软件包)和操作系统进行浏览和搜索。

Python 2和Python 3软件包之间也有区别,您可以通过最近下载的数量来查看软件包的受欢迎程度。 例如,ansible包在PyPI可用 ,这是其元数据:

Downloads (All Versions):

5528 downloads in the last day

72037 downloads in the last week

289967 downloads in the last month

Author: Ansible, Inc.

Home Page: http://ansible.com/

Bug Tracker: http://github.com/ansible/ansible/

License: GPLv3

Categories

Development Status :: 5 - Production/Stable

Environment :: Console

Intended Audience :: Developers

Intended Audience :: Information Technology

Intended Audience :: System Administrators

License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)

Natural Language :: English

Operating System :: POSIX

Programming Language :: Python :: 2.6

Programming Language :: Python :: 2.7

Topic :: System :: Installation/Setup

Topic :: System :: Systems Administration

Topic :: Utilities

Package Index Owner: James.Laska, jimi, ansible

Package Index Maintainer: mpdehaan, badger

DOAP record: ansible-2.0.0.2.xml

安装套件

有两种方法可以从PyPI安装软件包。 您可以下载该软件包,然后运行python setup.py install 。 但是现代的方法是使用pipsetuptoolswheel 。 Pip代表Pip Installs软件包(是的,这是首字母缩写词之一),是您安装的前端。 如果您从python.org安装了Python 2> = 2.7.9或Python 3> = 3.4,则您已经拥有pip和setuptools,但需要升级到最新版本: pip install -U pip setuptoolspython -m pip install -U pip setuptools在Windows上python -m pip install -U pip setuptools

使用pip安装轮: pip install wheel

如果您使用的是Python的早期版本,请考虑升级。 如果无法连接,则需要自行安装pip,setuptools和wheel。 检查说明

Python软件包始终安装在环境中。 我这里不会介绍的一种常见做法是使用虚拟环境来管理具有不同解释器和/或不同组已安装软件包的Python的多个独立安装。

最佳实践

Python打包机构提供了有关打包最佳实践的大量指南。 这很重要,因为它是一个活跃的开发领域,建议会Swift发展。

另外,如果您想做一些特别的事情,例如从备用存储库中安装软件包而不是PyPI,或者以更复杂的方式使用pip,您会发现很好的讨论和实用建议。

结论

当您是Python初学者时,您将学习核心语言并乐在其中。 很快您就会发现标准库,并且随着您获得更多的经验,您会从其丰富性中受益越来越多。

作为Pythonista的发展的下一个阶段是将Python社区对PyPI的极大赞誉纳入您的系统。 包作为可重用Python代码的部署单元,可启用此生态系统。

翻译自: https://code.tutsplus.com/tutorials/how-to-use-python-packages--cms-26000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值