(翻译)30天学习Python👨‍💻第十七天——第三方模块

678 阅读4分钟

30天学习Python👨‍💻第十七天——第三方模块

Python无疑是一门令人惊叹的编程语言。它有大量好用的内置模块或者标准库。但是,让开发者社区如此喜欢Python的其中一个原因是数百万贡献者提供了令人惊叹的包生态系统。今天我将花时间探讨关于使用第三方Python包的所有相关内容,以及如何在我们的项目中使用。

Python包索引

Python包索引(PyPI)是存储庞大社区的Python开发者贡献的所有Python包的集合或者仓库。任何人无论是个体还是一个大的组织都可以用Python创造应用,然后使用Python包索引分享到社区。这非常像JavaScript里的Node包管理器npm,它也是包含了由社区的开发者构建的JavaScript库的巨大仓库。

PyPI允许我们安装Python社区构建和共享的包。

非Python内置模块的包可以使用包下载器pip下载,这个工具与Python一同安装。它提供了一个命令行界面来寻找、安装、下载和删除来自PyPI或者其他Python包索引的包。安装任意第三方Python包的命令是pip install

注意:pip的版本可以使用pip --version或者pip -V来检查。如果路径显示的是Python 2.7,请确保你安装了Python3版本,然后以pip3的形式执行pip

pip的资源推荐

虚拟环境

当我们使用命令pip install package-name在命令行下载包时,会默认下载到包的全局位置。这意味着如果我们在两个不同的Python项目中导入相同的包,将安装相同版本的包。但是这不是我们所想要的,我们所需要的是在不同的项目中安装不同版本的包。为了使这成为可能,Python 3.3+版本引入了一个叫做venv的工具。它主要是创建一个沙箱包装器,使安装的依赖项只能在这个项目中访问。

像PyCharm这样的IDE,在每次新建项目时就会创建一个虚拟环境。所有的依赖以及它们的版本信息列表被维护在一个叫做requirements.txt的项目根目录下。在未来的不久,当我们创建Python项目时我将会谈论更多这方面的内容。

如果我们拿JavaScript对比,每一个JavaScript项目在一个叫做node_modules的虚拟环境中都有自己版本的依赖关系。依赖和版本管理都由一个放在项目根目录下的package.json文件管理。

如果你对包如何创建以及分享到社区感兴趣,这里有一篇好的文章。

一篇关于Python虚拟环境的好文章

受欢迎的Python包

我探索了在Python包索引中提供的一些流行和受欢迎的Python包。在接下来的挑战中我们将会使用它们中的一些来创建项目。下面列出的是一些好用的Python第三方包

  • Requests - 网络请求最有名的包
  • Tensorflow - 最受欢迎的机器学习的包
  • Scrapy - 最受欢迎的网络爬虫包之一
  • Twisted - 受欢迎的网络包
  • Numpy - 用于科学计算的非常受欢迎的包
  • Pygame - 2D游戏开发的包

这只是许多受欢迎的Python库中的一小部分,我们将会很快用到它们。

使用第三方包

我选择了一个随机生成笑话的包用来进行测试。现在用pip进行下载。

pip install joke-generator

在我们的代码中尝试使用这个包

import joke_generator

random_joke = joke_generator.generate()

print(random_joke) # 一个笑话会出现

让我们尝试另一个包,这次我们尝试从维基百科获取一些数据。我发现了一个叫做Wikipedia-API的包

pip install Wikipedia-API

然后在代码中使用它

import wikipediaapi

wiki_wiki = wikipediaapi.Wikipedia('en')
page_py = wiki_wiki.page('Python_(programming_language)')

print("Page - Title: %s" % page_py.title)
# Page - Title: Python_(programming_language)
print("Page - Summary: %s" % page_py.summary[0:60])
# Page - Summary: Python is an interpreted, high-level, general-purpose progra

这是在我们的应用中使用Python第三方包的一个简短介绍。不久在我们构建一些有趣项目的时候我们将会探索更多。

这就是今天全部的内容了。明天我们将会探讨一个重要的概念——I/O文件操作。

原文链接

30 Days of Python 👨‍💻 - Day 17 - External Modules