Python | 开发者必备的 6 个库

简介: 无论你是正在使用 Python 进行快速开发,还是在为 Python 桌面应用制作原生 UI ,或者是在优化现有的 Python 代码,以下这些 Python 项目都是应该使用的。 Python 凭借其易用的特点,已经被工业界和学术界广泛采用。

无论你是正在使用 Python 进行快速开发,还是在为 Python 桌面应用制作原生 UI ,或者是在优化现有的 Python 代码,以下这些 Python 项目都是应该使用的。

Python 凭借其易用的特点,已经被工业界和学术界广泛采用。另一方面,Python 丰富的第三方项目——库、附加组件,和辅助的开发成果——使得 Python 语言的应用范围被不断扩大。
其中一些项目,比如 PyInstaller 和 WxPython ,为那些制作桌面应用和终端应用的 Python 开发者提供了便利。
其他的项目, 比如 PyPy , 则是用来给服务器端 Python 应用提供额外的动力。还有一些,像  PBR 、CFFI 和 MyPy , 适用于差不多所有五花八门的 Python 应用,无论在什么地方运行。
如果你是一个 Python 开发者,所有这六个项目都值得你来熟悉一下。而且所有这些项目,在近几周都发布了新的主要版本。

Python 必备之 PyPy 

PyPy 主要用于何处?

如果你需要更快的 Python 应用程序,最简单的实现的方法就是通过 PyPy ,Python 运行时与实时(JIT)编译器。与使用普通的 Python 对等程序相比,使用 PyPy 的 Python 应用程序的运行速度平均提升7.5倍。
不幸的是,PyPy 与许多 Python 的明星框架并不是很好地兼容。PyPy 5.9 在解决这个问题上取得了重大进展。
 
PyPy 5.9 的功能

数据科学框架 NumPy 和 Pandas 现在运行在 PyPy 的 Python 2.7 兼容版本上。这些框架的大部分问题来源于 PyPy 与现有 C 代码的接口。为了解决这个问题,PyPy 5.9 对 CFFI 库(见下文)和 PyPy 的 Python  C API 兼容性层进行了改进。
此外,在 5.9 发布版本中,PyPy 的 JSON 解析器在处理多种 JSON 对象,尤其是那些重复使用的相同的词典键值时,明显更快。

何处下载 PyPy 5.9

你可以直接从 PyPy 的网站下载二进制版本:https://pypy.org/download.html 官方二进制文件包括 Windows、Mac OS 和 Linux 的不同 CPU 架构。
请注意,为了兼容 Python 2.7 和 Python 3.5 ,存在不同的二进制文件,因此请确保你正在获取与你将要运行的脚本所匹配的版本。
BitBucket 上有源代码和错误跟踪记录:https://bitbucket.org/pypy/pypy

Python 必备之 CFFI  

CFFI 主要用于何处? 

C 外部函数接口库(CFFI)(https://cffi.readthedocs.io/)为 Python 应用程序与独立 C 库的交互提供了一种机制。
虽然 Python 的 stock 版本,CPython,也拥有自己的库来完成此类功能,称为 Ctypes ,但对 Python 用户来说,比起 Ctypes ,CFFI 使得与 C 库的交互更容易、更简便。
 
CFFI 1.11 的功能

与 PyPy 一起更新的 CFFI v1.11 (https://cffi.readthedocs.io/en/latest/whatsnew.html#v1-11)增加了很小但很有用的改动。
现在可以在即将发布的 Python 3.7 上使用betas了,在 Windows 上更好地支持外部错误处理,并支持 C 语言中更多的现代标准类型,例如 float/double _Complex 和 char16_t和char_32t 类型。最后两个也是最重要的,在 C 库中默认使用 Unicode 编码。

何处下载 CFFI 1.11 ?

CFFI 在 Python Package Index 上可以单独下载:https://pypi.python.org/pypi/cffi
或通过 Python 的 pip 工具安装:pip install cffi 。源码和问题跟踪可以在 BitBucket(https://bitbucket.org/cffi/cffi) 上找到。

Python 必备之 PyInstaller 

PyInstaller 主要用于何处?

关于 Python 的最常见的问题之一是“如何从 Python 脚本中生成独立的可执行文件?” PyInstaller (https://github.com/pyinstaller/pyinstaller)一直是对此最好的答案之一。
 
PyInstaller 3.3 的功能

PyInstaller 将 Python 应用程序打包到单目录或单文件的可执行文件中,捆绑任何所需的第三方库,并可与绝大多数常见的库和框架配合使用。
PyInstaller 3.3 中最大的改进是对 Python 3.6 的支持,因为鉴于 Python 3.6 已经发布这确实是必要的。
PyInstaller 3.3 (https://github.com/pyinstaller/pyinstaller/releases/tag/v3.3)还包括一个更广泛兼容的引导加载程序,适用于 Windows 可执行文件,并扩展了对捆绑常见库(如 QT、GTK +、NumPy 和 Django )的支持。
PyInstaller 在不久之后可能添加的一个功能是交叉打包,例如,在 Windows 上创建 Mac 兼容的应用程序。你需要在要部署的同一平台上运行该 PyInstaller ,无论是 Windows、Mac 还是 Linux 。

何处下载 PyInstaller 3.3 ?

PyInstaller 可以通过 Python Package Index 安装:https://pypi.python.org/pypi/PyInstaller/3.3
也可通过 Python 的 pip 工具安装:pip install pyinstaller 。对于那些需要自己编译引导加载程序的人,源码可以在 GitHub (https://github.com/pyinstaller/pyinstaller)上找到,但对多数人而言是不需要这么做的。

Python 必备之 Python Build Reasonableness (PBR)
 
Python PBR 主要用于何处?

Setuptools 是用于打包 Python 项目的标准的 Python 问题子系统。

管理特定项目的 Setuptools 可能会变得非常繁琐,特别是在自动生成需求、管理文档文件或编辑项目贡献者数据时。

Python PBR 的功能

PBR(https://docs.openstack.org/pbr/latest/), Python Build Reasonableness 的缩写,是以一致的方式用于管理 Setuptools 包的库。

它可以自动化许多 Setuptools 打包的设置,例如版本号、生成作者和 ChangeLog 文件,以及生成 Sphinx 风格的文档。

PBR 最初是作为 OpenStack 项目的一部分开发的,但现在你所使用 PBR 中维护的内容与 OpenStack 已经没有任何联系了。

哪里可以下载 Python PBR ?

PBR 在 Python Package Index 上可以找到:

https://pypi.python.org/pypi/pbr 并且可以和 pip 一起安装,只需要输入 pip install pbr 即可。 源码可在 GitHub (https://github.com/openstack-dev/pbr)上下载。

Python 必备之 WxPython 

WxPython 主要用于何处?

想要实现跨平台桌面应用程序的 Python 开发人员可以从多个工具包中进行选择。

 WxPython(https://wxpython.org/),是 WxWidgets(https://www.wxwidgets.org/) 库的一个封装,使用了其所支持主机平台的原生 UI 元素,包括 Windows、Mac、Linux 和其他类 Unix 操作系统。

WxPython 4.0 的功能

早期版本的 WxPython 被放弃了是由于其传统的设计决策,使其变得越来越慢,而且不太适合使用。

为了解决这个问题,WxPython 的开发人员对 WxPython 的 4.0 分支做了重大改变。

目标是允许开发人员更快地上手 WxPython ,并且使通过它创建的框架和应用程序更加高性能和易维护。然而,为了使用 WxPython 4.0 ,任何现有的使用 WxPython 项目都需要修改(https://wxpython.org/Phoenix/docs/html/MigrationGuide.html)。

哪里可以下载 WxPython 4.0 ?

WxPython 4.0 官方版本依然是 beta 版。它可以在 Python Package Index 上找到:https://pypi.python.org/pypi/wxPython/4.0.0b2 即通过 pip install wxpython 命令。在正式发布前它可能会更新数次,注意经常检查更新。

那些想直接破解的人可以查看 GitHub 上的代码库(https://github.com/wxWidgets/Phoenix)。请注意,WxPython 的 4.0 分支以 “Phoenix” 代号进行标记的,以使其与早期版本不同。

Python 必备之 Mypy 
 
Mypy 主要用于何处?

Python 的动态性既是一种福音,也是一种烦恼,对于快速构建软件非常棒,但是当代码难以推理、测试和调试时,并不是很棒。

Mypy(http://www.infoworld.com/cms/article/mypy-lang.blogspot.com) 在编译时向 Python 添加静态类型检查,使 Python 程序更加一致和可维护,并且不会增加运行时开销。
 
Mypy 0.530 的功能

Mypy 0.530 (http://mypy-lang.blogspot.com/2017/10/mypy-0530-released.html)添加了不同协议(http://mypy.readthedocs.io/en/latest/class_basics.html#protocols-and-structural-subtyping)的支持,该协议是用于 Python 子类的目前实验性类型的功能。
它还在仅用于包含特定类型的对象的字典中添加 “TypedDict” 类型,并且可以逐个对文件进行更严格的类型检查的选项。
哪里可以下载 Mypy 0.530 ?

Mypy 可以在 Python Package Index 上找到:https://pypi.python.org/pypi/mypy 并通过 pip install mypy 来安装。那些对 Mypy 实现感兴趣的人可以通过 GitHub (https://github.com/python/mypy)检出源码。



原文发布时间为:2018-09-11
原文作者: 上海小胖
本文来自云栖社区合作伙伴“ Python专栏   ”,了解相关信息可以关注“ Python专栏   ”。

相关文章
|
2月前
|
开发者 Python
开发者请注意:Python2 的最后版本将于 4 月发布,但它确实是在 1 月 1 日就寿命终止了!
开发者请注意:Python2 的最后版本将于 4 月发布,但它确实是在 1 月 1 日就寿命终止了!
46 1
|
1月前
|
数据采集 存储 中间件
Scrapy,作为一款强大的Python网络爬虫框架,凭借其高效、灵活、易扩展的特性,深受开发者的喜爱
【6月更文挑战第10天】Scrapy是Python的高效爬虫框架,以其异步处理、多线程及中间件机制提升爬取效率。它提供丰富组件和API,支持灵活的数据抓取、清洗、存储,可扩展到各种数据库。通过自定义组件,Scrapy能适应动态网页和应对反爬策略,同时与数据分析库集成进行复杂分析。但需注意遵守法律法规和道德规范,以合法合规的方式进行爬虫开发。随着技术发展,Scrapy在数据收集领域将持续发挥关键作用。
67 4
|
1月前
|
IDE 测试技术 持续交付
Python作为一种简洁、易读且功能强大的编程语言,其自动化测试和单元测试框架的丰富性和易用性为开发者提供了极大的便利
【6月更文挑战第10天】本文探讨了Python自动化测试与单元测试框架在提升代码质量和效率中的作用。Selenium、Appium和pytest是常用的自动化测试框架,分别支持Web和移动应用的测试。unittest是Python的标准单元测试框架,提供断言方法和测试组织结构。通过制定测试计划、编写高质量测试用例、持续集成与测试、以及有效利用测试报告,开发者能提高代码质量和开发效率。
35 1
|
1月前
|
Java 开发者 Python
Java开发者的Python快速进修指南:函数基础
【6月更文挑战第5天】本文探讨了Python函数与Java方法的区别。Python函数使用`def`关键字声明,无需修饰符,参数支持默认值和可变参数,可通过关键字指定顺序。Java则无默认参数,且需按顺序传递。Python函数可返回多个值,而Java需封装为对象。文中还介绍了Python的可变参数(*numbers)、关键字参数(**info)及内置函数如`range`、`zip`、`all`和`any`的用法。
|
2月前
|
Go 云计算 开发者
2024 Python开发者转型Go开发
随着Go语言在云计算、微服务和高性能网络服务中的流行,Python开发者面临是否转向Go开发的选择。这个决定涉及到多方面的考量,包括语言特性、生态系统、性能需求、学习曲线和职业发展等。本文将深入探讨Python开发者转向Go开发的利弊,分析两种语言在不同场景下的适用性,并提供从Python到Go的过渡策略,旨在为Python开发者提供全面的转型指南。
71 0
2024 Python开发者转型Go开发
|
7月前
|
供应链 安全 开发工具
供应链安全情报 | 恶意py包伪装代理SDK进行后门攻击,目标锁定python开发者
2023年11月28号,悬镜供应链安全实验室在Pypi官方仓库(https://pypi.org)监测到两起伪装成http和socks5代理SDK的开源组件投毒事件。python开发者一旦下载安装这些投毒Py包(libproxy、libsocks5),会触发执行Py包中的恶意代码,最终将导致开发者系统被投毒者植入恶意后门。
55 0
|
10月前
|
Linux 开发者 iOS开发
Python开发者必读:Pip使用全攻略与最佳实践
Python开发者必读:Pip使用全攻略与最佳实践
248 0
|
传感器 Rust 算法
HaaS Python 2.1 版本更新上线 在线热更新+智能行为感知算法+更多开发板/API+精彩开发者活动 快来体验
HaaS Python 2.1 版本更新上线 在线热更新+智能行为感知算法+更多开发板/API+精彩开发者活动 快来体验
147 0
|
Rust JavaScript 前端开发
开发者调查报告:JavaScript 和 Python 仍占主导地位,Rust 持续猛增 4 倍
开发者调查报告:JavaScript 和 Python 仍占主导地位,Rust 持续猛增 4 倍
123 0
|
存储 NoSQL 前端开发
Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
391 0
Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)