Python 非官方库

2024年8月29日 | 阅读 7 分钟

本教程包含了许多非官方库、wheel、二进制文件以及流行应用程序的库,其中包括 Python,这是一个非常有趣的学科。

本教程提供了 Python 编程语言官方 CPython 版本的大量逻辑开源扩展库和 wheel 的 64 位和 32 位 Windows 版本。对于 PyPy 发行版,也提供了一些副本。

尽管库文档是非官方的(随意的、未公开的、个人的、不受支持的、无保证、无责任、免责声明),但大多数可用的编程分发版本都是稳定发布版本,其中 90% 的 bug 都已修复。它可以满足您的大部分需求和项目。

此处提供的库是 Windows 上最新官方 CPython 发行版的。它们很可能无法与 Blender、Maya、ArcGIS、OSGeo4W、ABAQUS、Cygwin、Pythonxy、Canopy、EPD、Anaconda、WinPython 等随附的自定义 Python 环境一起使用。许多副本不兼容 Windows XP 或其他版本。

Aiohttp

主要特点

  • 支持 HTTP 协议的客户端和服务器端。
  • 开箱即用地支持客户端和服务器 Web-Sockets,并避免回调地狱。
  • 提供 Web 服务器中间件和可插入路由。

Blist

Blits 是一个列表类排序,对于大型列表具有更好的性能。

blist 是 Python 列表的一个替换数据类型,在修改大型列表时提供更好的性能。blist 包还提供了排序列表、排序集合、弱排序列表、弱排序集合、排序字典和 btuple 类型。

BLOSC

Blosc 是一个高性能压缩器,针对 2D 数据进行了优化。

  • Blosc (http://blosc.org) 是一个针对二进制数据优化的高性能压缩器。它旨在比传统的、未压缩的、直接内存访问方法(使用 memcpy() OS 调用)更快地将数据发送到处理器缓存。
  • Blosc 适用于压缩包含熵相对较低的数值数组,例如稀疏数据、时间序列、具有常规分布值的网络等。
  • python-blosc 是一个包装 Blosc 的 Python 包。python-blosc 支持 Python 3.7 或更高版本。

BLZ

BLZ 是一个聚合的、压缩的数据容器(用于内存和磁盘)。

  • BLZ 是数值数据的聚合容器。聚合允许高效地扩展/收缩数据容器。此外,它还可以被压缩以减少内存/磁盘需求。压缩过程由 Blosc 完成,Blosc 是一个针对二进制数据进行优化的高性能压缩器。
  • BLZ 使用 Blosc (http://www.blosc.org) 进行数据压缩,并使用 numexpr (https://github.com/pydata/numexpr) 加速许多向量和查询操作。Blosc 可以有效地压缩二进制数据,提高内存访问速度,而 numexpr 内核则减少内存使用量并利用多个核心执行计算。长期目标是利用 Blaze (http://blaze.pydata.org) 中的高级计算能力,以及 numexpr。

Boost python

Boost python 支持 C++ 和 Python 之间的无缝互操作。

欢迎来到 Boost.Python,这是一个 C++ 库,支持 C++ 和 Python 编程语言之间的无缝互操作。该库包括对以下方面的支持:

  • 引用和指针
  • C++ 到 Python 异常转换
  • 全局注册类型强制转换
  • 自动跨模块类型转换
  • 高效函数重载
  • 默认参数
  • 关键字参数
  • 在 C++ 中控制 Python 对象
  • 将 C++ 迭代器作为 Python 迭代器
  • 文档字符串

PyCUDA

PyCUDA 提供对 Nvidia 并行计算 API 的访问。需要 py tools、匹配的 CUDA Toolkit、兼容的 Nvidia 驱动程序和 MSVC 编译器

PyCUDA 允许您从 Python 访问 Nvidia 的 CUDA 并行计算 API。存在一些 CUDA API 的封装,那么 PyCUDA 有什么特别之处?

  • 对象清理与对象的生命周期相关联。这个在 C++ 中常被称为 RAII 的原则,使得编写正确、无泄漏、无崩溃的代码更加容易。PyCUDA 熟悉上下文,因此(例如)它不会在其中分配的所有内存都已释放之前就从上下文中分离。
  • 像 pycuda.driver.SourceModule 和 pycuda.gpuarray.GPUArray 这样的抽象使得 CUDA 编程比 Nvidia 的 C 语言运行时更加方便。
  • 如果您愿意,PyCUDA 将 CUDA 驱动程序 API 的全部功能交给您。它还包括与 OpenGL 交互的代码。
  • 自动错误检查。所有 CUDA 错误都会自动转换为 Python 异常。
  • PyCUDA 的底层是用 C++ 编写的,因此上述所有便利功能都是免费的。
  • 有用的文档和 Wiki。
  • 同样,PyCUDA 的姊妹项目 PyOpenCL 也提供了 OpenCL 的类似计算功能。

PycURL -- Python 对 cURL 库的接口

PycURL 是 Python 对 libcurl(多协议文件传输库)的接口。除了 urllib Python 模块之外,PycURL 还可以用于从 Python 程序中获取由 URL 标识的对象。除了简单的 GET 请求外,PycURL 还公开了 libcurl 的大部分功能,包括

  • 速度 - libcurl 非常快,而 PycURL 是 libcurl 的一个轻量级封装,因此也非常快。PycURL 的基准测试表明,它的速度比 requests 快几倍。
  • 功能包括多协议支持、SSL、认证和代理选项。PycURL 支持 libcurl 的大部分回调函数。
  • Multi 和 share 接口。
  • 使用附件进行网络操作,允许将 PycURL 集成到应用程序的 I/O 循环中(例如,使用 Tornado)。

要求

  • Python 3.5-3.10。
  • libcurl 7.19.0 或更高版本。

PyEDA

PyEDA 是一个用于电子设计自动化的 Python 库。

要点

  • 符号布尔代数,具有多种函数表示形式
  • 逻辑表达式
  • 真值表,具有三种结果状态(0、1、“不关心”)
  • 简化有序二元决策图 (ROBDD)
  • SAT 求解器
  • 回溯
  • PicoSAT
  • Coffee 逻辑简化
  • 形式等价性
  • 多层位向量
  • DIMACS CNF/SAT 解析器
  • 逻辑表达式解析器

PYMedia

PyMedia 是一个用于媒体文件操作的 Python 模块。

  • PyMedia 是一个用于 wav、mp3、Ogg、avi、divx、dvd、cdda 和文档操作的 Python 模块。
  • 它允许您解析、解复用、复用、转换和编码所有支持的格式。
  • 它可以为 Windows、Linux 和 Cygwin 编译。
  • PyMedia 的设计既简单又灵活。
  • 请参阅教程,例如。它允许您立即创建多媒体应用程序,并通过各种组件根据您的需求进行修改。
  • 选择 Python 语言是因为其简单的语法和完整性,并达到了一个功能集。
  • 探索 PyCar 应用程序,它充分利用了 PyMedia 库,可以将您的 PC 变成一个强大的车载媒体中心。

PYTHON-CISON

Python-Cison 实现了一个非常快的 JSON 编码器/解码器。

  • 此模块为 Python 实现了一个非常快的 JSON 编码器/解码器。
  • JSON 代表 JavaScript 对象表示法,它是一种基于消息的轻量级数据交换格式,人类易于阅读/编写,机器易于解析/生成。JSON 与语言无关,在大多数编程语言中都有多种实现,使其成为数据交换和存储的理想选择。
  • 该模块用 C 编写,与直接用 Python 编写的其他 Python JSON 实现相比,速度提高了数倍。速度提升的幅度取决于数据的复杂性和操作。对于编码操作,速度提升在 10-200 倍之间,对于解码操作,速度提升在 100-250 倍之间。

PyX - Python 图形包

概述

PyX 是一个用于创建 PostScript、PDF 和 SVG 文件的 Python 包。它将 PostScript 绘图模型与 TeX/LaTeX 接口相结合。复杂的任务,如出版质量的 2D 和 3D 图,都是通过这些原生功能构建的。

要点

  • 独立的、完全可配置的 PostScript、PDF 和 SVG 输出图形
  • 无缝的 TeX/LaTeX 完全集成
  • 访问 PostScript 功能,如路径、样式、填充图案、变换、剪裁、位图包含等。
  • 对路径进行高级数学操作,如交叉、变换、分割、平滑等。
  • 精致的图表生成:模块化设计、可插入轴、基于合理数值的轴分割、可自定义的图表样式等。

状态和可用性

PyX 处于不间断开发状态。计划中的功能列在路线图中。当前版本 PyX 0.15 可在 PyPI 项目页面上获取。

Scipy

SciPy 是用于科学、数学和工程等领域的软件。

SciPy 旨在与 NumPy 数组协同工作,并提供许多易于使用且高效的数学例程,例如用于数值积分和优化的例程。它们一起运行在所有流行的操作系统上,易于安装且免费。NumPy 和 SciPy 易于使用,但功能强大,足以让一些世界领先的科学家和工程师信赖。如果您需要在计算机上处理数字并显示或发布结果,请尝试 SciPy!

征集贡献

我们感谢并欢迎贡献。小的改进或修复始终受到赞赏;标记为“good first issue”的问题可能是个好的开始。请参阅我们的贡献指南。

编写代码不是为 SciPy 做贡献的唯一方式。您还可以

  • 审查拉取请求
  • 处理问题
  • 开发教程、演示和其他教育材料
  • 维护和改进我们的网站
  • 为我们的品牌资产和宣传材料开发视觉设计
  • 协助推广并吸引新贡献者
  • 撰写拨款建议并协助其他筹款活动

如果您不确定从哪里开始或您的技能如何匹配,请联系我们!您可以在邮件列表或此处(在 GitHub 上)通过在现有相关问题下发表评论来提问。

如果您是开源贡献的新手,本指南将解释为什么、什么以及如何进行联系。