项目摘要

Project Summaries

Python 安装和打包领域最相关项目的摘要和链接。

Summaries and links for the most relevant projects in the space of Python installation and packaging.

PyPA 项目

PyPA Projects

bandersnatch

Docs | Issues | GitHub | PyPI

bandersnatch 是一个 PyPI 镜像客户端,旨在高效地创建 PyPI 内容的完整镜像。通过使用该工具,组织可以节省带宽和延迟,特别是在自动化测试的上下文中,并防止对 PyPI 内容分发网络(CDN)造成过大负载。文件可以从本地目录或 AWS S3 提供服务。

bandersnatch is a PyPI mirroring client designed to efficiently create a complete mirror of the contents of PyPI. Organizations thus save bandwidth and latency on package downloads (especially in the context of automated tests) and to prevent heavily loading PyPI's Content Delivery Network (CDN). Files can be served from a local directory or AWS S3.

build

Docs | Issues | GitHub | PyPI

build 是一个兼容 PEP 517 的 Python 包构建工具。它提供了一个命令行接口(CLI)来构建包,以及一个 Python API。

build is a PEP 517 compatible Python package builder. It provides a CLI to build packages, as well as a Python API.

cibuildwheel

Docs | Issues | GitHub | PyPI | Discussions | Discord #cibuildwheel

cibuildwheel 是一个 Python 包,它可以在大多数 CI 系统上为所有常见平台和 Python 版本构建 wheels。另请参见 multibuild

cibuildwheel is a Python package that builds wheels for all common platforms and Python versions on most CI systems. Also see multibuild.

distlib

Docs | Issues | GitHub | PyPI

distlib 是一个实现与 Python 软件的打包和分发相关的低级函数的库。 distlib 实现了多个相关的 PEP(Python 增强提案标准),并且对第三方打包工具的开发者很有用,可以用来创建和上传二进制和源代码 distributions,实现互操作性,解决依赖关系,管理包资源,执行其他类似的功能。

与更严格的 packaging 项目(下文所述)不同,后者专门实现了现代 Python 打包互操作性标准,distlib 还尝试在处理遗留包和元数据时提供合理的回退行为,这些遗留包和元数据早于现代互操作性标准,并且属于与这些标准不兼容的包的子集。

distlib is a library which implements low-level functions that relate to packaging and distribution of Python software. distlib implements several relevant PEPs (Python Enhancement Proposal standards) and is useful for developers of third-party packaging tools to make and upload binary and source distributions, achieve interoperability, resolve dependencies, manage package resources, and do other similar functions.

Unlike the stricter packaging project (below), which specifically implements modern Python packaging interoperability standards, distlib also attempts to provide reasonable fallback behaviours when asked to handle legacy packages and metadata that predate the modern interoperability standards and fall into the subset of packages that are incompatible with those standards.

distutils

原始的 Python 打包系统,最早在 Python 2.0 中加入标准库,并在 3.12 中被移除。

由于维护一个打包系统面临的挑战,特别是当功能更新与语言运行时更新紧密耦合时,已不再推荐直接使用 distutils,而是推荐使用 Setuptools 作为替代方案。 Setuptools 不仅提供了 distutils 所不具备的功能(例如依赖声明和入口点声明),它还提供了一个一致的构建接口和功能集,适用于所有受支持的 Python 版本。

因此, distutils 在 Python 3.10 中被 PEP 632 弃用,并在 Python 3.12 中被 移除。Setuptools 打包了 distutils 的独立副本,并且即使在 Python < 3.12 中,如果先导入 setuptools 或使用 pip,也会注入 distutils。

The original Python packaging system, added to the standard library in Python 2.0 and removed in 3.12.

Due to the challenges of maintaining a packaging system where feature updates are tightly coupled to language runtime updates, direct usage of distutils has been actively discouraged, with Setuptools being the preferred replacement. Setuptools not only provides features that plain distutils doesn't offer (such as dependency declarations and entry point declarations), it also provides a consistent build interface and feature set across all supported Python versions.

Consequently, distutils was deprecated in Python 3.10 by PEP 632 and has been removed from the standard library in Python 3.12. Setuptools bundles the standalone copy of distutils, and it is injected even on Python < 3.12 if you import setuptools first or use pip.

flit

Docs | Issues | PyPI

Flit 提供了一种简单的方法,用于将纯 Python 包和模块创建并上传到 PyPI。它专注于 让简单的事情变得更简单,以简化打包过程。Flit 可以生成配置文件,快速设置一个简单的项目,构建源代码分发包和 wheel 文件,并将它们上传到 PyPI。

Flit 使用 pyproject.toml 来配置项目。Flit 不依赖于 Setuptools 等工具来构建分发包,也不依赖于 twine 将其上传到 PyPI。Flit 需要 Python 3,但你可以使用它来分发适用于 Python 2 的模块,只要这些模块可以在 Python 3 中导入。

Flit 包由 Matthias Bussonnier 自 2023 年 10 月起在 tidelift 平台 提供支持,资金会捐赠给 PSF,并指定用于 PyPA 使用。

Flit provides a simple way to create and upload pure Python packages and modules to PyPI. It focuses on making the easy things easy for packaging. Flit can generate a configuration file to quickly set up a simple project, build source distributions and wheels, and upload them to PyPI.

Flit uses pyproject.toml to configure a project. Flit does not rely on tools such as Setuptools to build distributions, or twine to upload them to PyPI. Flit requires Python 3, but you can use it to distribute modules for Python 2, so long as they can be imported on Python 3.

The flit package is lifted by Matthias Bussonnier since October 2023 on the tidelift platform, and funds sent to the PSF and earmarked for PyPA usage.

hatch

Docs | GitHub | PyPI

Hatch 是一个统一的命令行工具,旨在方便地管理 Python 开发者的依赖关系和环境隔离。Python 包开发者使用 Hatch 及其 build backend Hatchling 来配置、版本控制、指定依赖关系并将包发布到 PyPI。其插件系统允许轻松扩展功能。

Hatch is a unified command-line tool meant to conveniently manage dependencies and environment isolation for Python developers. Python package developers use Hatch and its build backend Hatchling to configure, version, specify dependencies for, and publish packages to PyPI. Its plugin system allows for easily extending functionality.

packaging

Docs | Issues | GitHub | PyPI

Python 打包的核心工具,供 pipSetuptools 使用。

打包库中的核心工具处理 Python 包的版本管理、规范、标记、需求、标签以及类似的属性和任务。大多数 Python 用户在不需要显式调用它的情况下依赖于这个库;这里列出的其他 Python 打包、分发和安装工具的开发者通常会使用它的功能来解析、发现以及处理依赖属性。

该项目特别专注于实现现代 Python 打包互操作性标准,这些标准定义在 PyPA 规范 中,并且会为那些与这些标准不兼容的足够古老的遗留包报告错误。与此相比, distlib 项目是一个更宽松的库,它试图在 packaging 会报告错误的情况下,对模糊的元数据提供一个合理的解释。

Core utilities for Python packaging used by pip and Setuptools.

The core utilities in the packaging library handle version handling, specifiers, markers, requirements, tags, and similar attributes and tasks for Python packages. Most Python users rely on this library without needing to explicitly call it; developers of the other Python packaging, distribution, and installation tools listed here often use its functionality to parse, discover, and otherwise handle dependency attributes.

This project specifically focuses on implementing the modern Python packaging interoperability standards defined at PyPA 规范, and will report errors for sufficiently old legacy packages that are incompatible with those standards. In contrast, the distlib project is a more permissive library that attempts to provide a plausible reading of ambiguous metadata in cases where packaging will instead report on error.

pip

Docs | Issues | GitHub | PyPI

最流行的 Python 包安装工具,也是现代版本 Python 附带的工具。

它提供了从 PyPI 和其他 Python 包索引查找、下载和安装包的基本核心功能,并且可以通过其命令行接口(CLI)融入到各种开发工作流中。

The most popular tool for installing Python packages, and the one included with modern versions of Python.

It provides the essential core features for finding, downloading, and installing packages from PyPI and other Python package indexes, and can be incorporated into a wide range of development workflows via its command-line interface (CLI).

Pipenv

Docs | Source | Issues | PyPI

Pipenv 是一个旨在将所有打包领域的最佳实践带入 Python 世界的项目。它将 Pipfilepipvirtualenv 融合成一个单一的工具链。它可以自动导入 requirements.txt,并使用 safety 检查 Pipfile 中的 CVE 漏洞。

Pipenv 旨在帮助用户在命令行上管理环境、依赖关系和导入的包。它在 Windows 上也表现良好(这是其他工具常常忽视的),可以生成和检查文件哈希,以确保依赖关系规范与哈希锁定的依赖一致,并简化包和依赖的卸载过程。

Pipenv is a project that aims to bring the best of all packaging worlds to the Python world. It harnesses Pipfile, pip, and virtualenv into one single toolchain. It can autoimport requirements.txt and also check for CVEs in Pipfile using safety.

Pipenv aims to help users manage environments, dependencies, and imported packages on the command line. It also works well on Windows (which other tools often underserve), makes and checks file hashes, to ensure compliance with hash-locked dependency specifiers, and eases uninstallation of packages and dependencies.

Pipfile

Source

Pipfile 及其姊妹文件 Pipfile.lock 是一个面向应用的高层次替代方案,用于取代 pip 的低层次 requirements.txt 文件。

Pipfile and its sister Pipfile.lock are a higher-level application-centric alternative to pip's lower-level requirements.txt file.

pipx

Docs | GitHub | PyPI

pipx 是一个工具,用于安装和运行 Python 命令行应用程序,而不会导致与系统中安装的其他包发生依赖冲突。

pipx is a tool to install and run Python command-line applications without causing dependency conflicts with other packages installed on the system.

Python 打包用户指南

Python Packaging User Guide

Docs | Issues | GitHub

本指南!

This guide!

readme_renderer

GitHub and docs | PyPI

readme_renderer 是一个供包开发者使用的库,用于将其用户文档(README)文件从标记语言(如 Markdown 或 reStructuredText)渲染为 HTML。开发者可以单独调用它,也可以通过 twine 在发布管理过程中使用,检查其包描述是否能在 PyPI 上正确显示。

readme_renderer is a library that package developers use to render their user documentation (README) files into HTML from markup languages such as Markdown or reStructuredText. Developers call it on its own or via twine, as part of their release management process, to check that their package descriptions will properly display on PyPI.

Setuptools

Docs | Issues | GitHub | PyPI

Setuptools(包括 easy_install)是对 Python distutils 的一组增强,旨在让你更轻松地构建和分发 Python distributions,特别是那些依赖于其他包的分发包。

Setuptools (which includes easy_install) is a collection of enhancements to the Python distutils that allow you to more easily build and distribute Python distributions, especially ones that have dependencies on other packages.

trove-classifiers

Issues | GitHub | PyPI

trove-classifiers 是 PyPI 上 分类器 的标准来源,项目维护者使用它来 系统地描述他们的项目,以便用户可以更容易地在 PyPI 上找到符合他们需求的项目。

trove-classifiers 包含了有效的分类器列表和已弃用的分类器列表(已弃用的分类器与替代它们的分类器配对)。使用此包可以验证用于准备上传到 PyPI 的包中的分类器。由于这个分类器列表是作为代码发布的,你可以安装并导入它,与参考 PyPI 上发布的 列表 相比,这样可以提供更便捷的工作流。该项目的 问题追踪器 用于讨论提议的分类器和新分类器的请求。

trove-classifiers is the canonical source for classifiers on PyPI, which project maintainers use to systematically describe their projects so that users can better find projects that match their needs on the PyPI.

The trove-classifiers package contains a list of valid classifiers and deprecated classifiers (which are paired with the classifiers that replace them). Use this package to validate classifiers used in packages intended for uploading to PyPI. As this list of classifiers is published as code, you can install and import it, giving you a more convenient workflow compared to referring to the list published on PyPI. The issue tracker for the project hosts discussions on proposed classifiers and requests for new classifiers.

twine

Docs | Issues | GitHub | PyPI

Twine 是开发者用来将包上传到 Python 包索引或其他 Python 包索引的主要工具。它是一个命令行程序,将程序文件和元数据传递给 Web API。开发者使用它是因为它是官方的 PyPI 上传工具,快速且安全,得到维护,并且可靠地工作。

Twine is the primary tool developers use to upload packages to the Python Package Index or other Python package indexes. It is a command-line program that passes program files and metadata to a web API. Developers use it because it's the official PyPI upload tool, it's fast and secure, it's maintained, and it reliably works.

virtualenv

Docs | Issues | GitHub | PyPI

virtualenv 是一个用于创建隔离的 Python Virtual Environments 的工具,类似于 venv。与 venv 不同,virtualenv 可以为其他版本的 Python 创建虚拟环境,它通过 PATH 环境变量来定位这些版本。它还提供了便捷的功能来配置、维护、复制和排查虚拟环境的问题。欲了解更多信息,请参阅 创建和使用虚拟环境 部分。

virtualenv is a tool for creating isolated Python Virtual Environments, like venv. Unlike venv, virtualenv can create virtual environments for other versions of Python, which it locates using the PATH environment variable. It also provides convenient features for configuring, maintaining, duplicating, and troubleshooting virtual environments. For more information, see the section on 创建虚拟环境.

Warehouse

Docs | Issues | GitHub

当前为 Python Package Index (PyPI) 提供支持的代码库。它托管在 pypi.org 上。是 pip 下载的默认来源。

The current codebase powering the Python Package Index (PyPI). It is hosted at pypi.org. The default source for pip downloads.

wheel

Docs | Issues | GitHub | PyPI

主要来说,wheel 项目提供了 bdist_wheel Setuptools 扩展,用于创建 wheel distributions。此外,它还提供了自己的命令行工具,用于创建和安装 wheel 文件。

另请参见 auditwheel,这是一个供包开发者使用的工具,用于检查和修复他们正在制作的二进制 wheel 格式的 Python 包。它提供了发现依赖关系、检查元数据合规性以及修复 wheel 和元数据的功能,以正确链接和包含包中的外部共享库。

Primarily, the wheel project offers the bdist_wheel Setuptools extension for creating wheel distributions. Additionally, it offers its own command line utility for creating and installing wheels.

See also auditwheel, a tool that package developers use to check and fix Python packages they are making in the binary wheel format. It provides functionality to discover dependencies, check metadata for compliance, and repair the wheel and metadata to properly link and include external shared libraries in a package.

非 PyPA 项目

Non-PyPA Projects

buildout

Docs | Issues | PyPI | GitHub

Buildout 是一个基于 Python 的构建系统,用于从多个部分创建、组装和部署应用程序,其中一些部分可能不是基于 Python 的。它允许你创建一个 buildout 配置,并在以后重新生成相同的软件。

Buildout is a Python-based build system for creating, assembling and deploying applications from multiple parts, some of which may be non-Python-based. It lets you create a buildout configuration and reproduce the same software later.

conda

Docs

conda 是 Anaconda Python 安装的包管理工具。Anaconda Python 是由 Anaconda, Inc 提供的一个专门面向科学社区的发行版,特别是在 Windows 上,那里安装二进制扩展通常较为困难。

Conda 是与 pip、virtualenv 和 wheel 完全独立的工具,但在包管理、虚拟环境管理和二进制扩展部署方面,提供了它们的许多组合功能。

Conda 不从 PyPI 安装包,只能从官方 Anaconda 仓库、anaconda.org(一个用户贡献的 conda 包的地方)或本地(例如内网)包服务器安装包。然而,请注意, pip 可以安装到 conda 环境中,并与 conda 并行工作,用于管理来自 PyPI 的 distributions。另外, conda skeleton 是一个工具,它通过先从 PyPI 获取包并修改其元数据,使得 Python 包可以被 conda 安装。

conda is the package management tool for Anaconda Python installations. Anaconda Python is a distribution from Anaconda, Inc specifically aimed at the scientific community, and in particular on Windows where the installation of binary extensions is often difficult.

Conda is a completely separate tool from pip, virtualenv and wheel, but provides many of their combined features in terms of package management, virtual environment management and deployment of binary extensions.

Conda does not install packages from PyPI and can install only from the official Anaconda repositories, or anaconda.org (a place for user-contributed conda packages), or a local (e.g. intranet) package server. However, note that pip can be installed into, and work side-by-side with conda for managing distributions from PyPI. Also, conda skeleton is a tool to make Python packages installable by conda by first fetching them from PyPI and modifying their metadata.

devpi

Docs | Issues | PyPI

devpi 具有一个强大的 PyPI 兼容服务器和 PyPI 代理缓存,并配有一个互补的命令行工具,用于推动 Python 的打包、测试和发布活动。devpi 还提供了一个可浏览和可搜索的 Web 界面。 devpi 支持镜像 PyPI、多个 package indexes 及其继承、这些索引之间的同步、索引复制和故障切换,以及包的上传。

devpi features a powerful PyPI-compatible server and PyPI proxy cache with a complementary command line tool to drive packaging, testing and release activities with Python. devpi also provides a browsable and searchable web interface. devpi supports mirroring PyPI, multiple package indexes with inheritance, syncing between these indexes, index replication and fail-over, and package upload.

dumb-pypi

GitHub | PyPI

dumb-pypi 是一个简单的 package index 静态文件站点生成器,生成的站点必须由静态文件 Web 服务器托管,以成为包索引。它支持提供哈希、核心元数据和 yank 状态。

dumb-pypi is a simple package index static file site generator, which then must be hosted by a static file webserver to become the package index. It supports serving the hash, core-metadata, and yank-status.

enscons

Source | Issues | PyPI

Enscons 是一个基于 SCons 的 Python 打包工具。它构建与 pip 兼容的源代码分发包和 wheel 文件,而无需使用 distutils 或 setuptools,包括带有 C 扩展的分发包。Enscons 的架构和理念与 distutils 不同。与其将构建功能添加到 Python 打包系统中,enscons 将 Python 打包功能添加到一个通用的构建系统中。Enscons 帮助你构建可以被 pip 自动构建的源代码分发包(sdist)和独立于 enscons 的 wheel 文件。

Enscons is a Python packaging tool based on SCons. It builds pip-compatible source distributions and wheels without using distutils or setuptools, including distributions with C extensions. Enscons has a different architecture and philosophy than distutils. Rather than adding build features to a Python packaging system, enscons adds Python packaging to a general purpose build system. Enscons helps you to build sdists that can be automatically built by pip, and wheels that are independent of enscons.

Flask-Pypi-Proxy

Docs | GitHub | PyPI

警告

不再维护,项目已归档

Flask-Pypi-Proxy 是一个作为 PyPI 缓存代理的 package index

警告

Not maintained, project archived

Flask-Pypi-Proxy is a package index as a cached proxy for PyPI.

Hashdist

Docs | GitHub

Hashdist 是一个用于构建非根软件分发的库。Hashdist 力图成为“在 Debian 技术无法使用的情况下,选择的 Debian”。对 Python 开发者来说,理解 Hashdist 最好的方式可能是将其视为 virtualenvbuildout 的一个更强大的混合体。它旨在解决安装科学软件的问题,并使包分发无状态、可缓存且可分支。它被一些研究人员使用,但自 2016 年以来一直缺乏维护。

Hashdist is a library for building non-root software distributions. Hashdist is trying to be “the Debian of choice for cases where Debian technology doesn’t work”. The best way for Pythonistas to think about Hashdist may be a more powerful hybrid of virtualenv and buildout. It is aimed at solving the problem of installing scientific software, and making package distribution stateless, cached, and branchable. It is used by some researchers but has been lacking in maintenance since 2016.

Maturin

Docs | GitHub

Maturin 是一个用于 Rust 扩展模块的构建后端,也用 Rust 编写。它支持在 Windows、Linux、macOS 和 FreeBSD 上为 Python 3.7+ 构建 wheel 文件,可以将它们上传到 PyPI,并且具有基本的 PyPy 和 GraalPy 支持。

Maturin is a build backend for Rust extension modules, also written in Rust. It supports building wheels for python 3.7+ on Windows, Linux, macOS and FreeBSD, can upload them to PyPI and has basic PyPy and GraalPy support.

meson-python

Docs | GitHub

meson-python 是一个使用 Meson 构建系统的构建后端。它允许 Python 包作者将 Meson 作为其包的构建系统。它支持多种语言,包括 C,并能够满足大多数复杂构建配置的需求。

meson-python is a build backend that uses the Meson build system. It enables Python package authors to use Meson as the build system for their package. It supports a wide variety of languages, including C, and is able to fill the needs of most complex build configurations.

multibuild

GitHub

Multibuild 是一组用于构建和测试 Python wheels 的 CI 脚本,支持 Linux、macOS 和(较少灵活的)Windows。另请参见 cibuildwheel

Multibuild is a set of CI scripts for building and testing Python wheels for Linux, macOS, and (less flexibly) Windows. Also see cibuildwheel.

nginx_pypi_cache

GitHub

nginx_pypi_cache 是一个使用 nginxpackage index 缓存代理。

nginx_pypi_cache is a package index caching proxy using nginx.

pdm

Docs | GitHub | PyPI

PDM 是一个现代的 Python 包管理器。它使用 pyproject.toml 来存储 PEP 621 中定义的项目元数据。

PDM is a modern Python package manager. It uses pyproject.toml to store project metadata as defined in PEP 621.

pex

Docs | GitHub | PyPI

Pex 是一个用于生成 .pex`(Python EXecutable)文件的工具,提供独立的 Python 环境,类似于 :ref:`virtualenv。PEX 文件是 zipapps,使得 Python 应用程序的部署像 cp 一样简单。单个 PEX 文件可以支持多个目标平台,并且可以从标准的 pip 可解析的依赖项、使用 pex3 lock ... 生成的锁文件,甚至另一个 PEX 文件中创建。PEX 文件可以选择性地嵌入支持将 PEX 文件转换为标准 venv、绘制依赖关系图等功能的工具。

Pex is a tool for generating .pex (Python EXecutable) files, standalone Python environments in the spirit of virtualenv. PEX files are zipapps that make deployment of Python applications as simple as cp. A single PEX file can support multiple target platforms and can be created from standard pip-resolvable requirements, a lockfile generated with pex3 lock ... or even another PEX. PEX files can optionally have tools embedded that support turning the PEX file into a standard venv, graphing dependencies and more.

pip-tools

Docs | GitHub | PyPI

pip-tools 是一套工具,专为 Python 系统管理员和发布经理设计,特别适合那些希望保持构建的确定性同时又能跟上其依赖项新版本的用户。用户可以通过哈希指定依赖项的特定版本,方便地从程序的其他部分的信息中生成正确格式的需求列表,更新所有依赖项(这是 pip 当前不提供的功能),并为程序创建约束层以遵循。

pip-tools is a suite of tools meant for Python system administrators and release managers who particularly want to keep their builds deterministic yet stay up to date with new versions of their dependencies. Users can specify particular release of their dependencies via hash, conveniently make a properly formatted list of requirements from information in other parts of their program, update all dependencies (a feature pip currently does not provide), and create layers of constraints for the program to obey.

pip2pi

GitHub | PyPI

pip2pi 是一个 包索引 服务器,其中特定的包是手动同步的。

pip2pi is a package index server where specific packages are manually synchronised.

piwheels

Website | Docs | GitHub

piwheels 是一个网站及其底层软件,它从 PyPI 获取源代码分发包,并将它们编译成针对 Raspberry Pi 计算机安装优化的二进制 wheel 文件。Raspberry Pi OS 预先配置了 pip,将 piwheels.org 作为 PyPI 的附加索引。

piwheels is a website, and software underpinning it, that fetches source code distribution packages from PyPI and compiles them into binary wheels that are optimized for installation onto Raspberry Pi computers. Raspberry Pi OS pre-configures pip to use piwheels.org as an additional index to PyPI.

poetry

Docs | GitHub | PyPI

poetry 是一个命令行工具,用于处理依赖项安装和隔离,以及 Python 包的构建和打包。它使用 pyproject.toml,并且不依赖于 pip 中的解析器功能,而是提供了自己的依赖解析器。它通过本地缓存关于依赖项的元数据,试图加速用户的安装和依赖解析体验。

poetry is a command-line tool to handle dependency installation and isolation as well as building and packaging of Python packages. It uses pyproject.toml and, instead of depending on the resolver functionality within pip, provides its own dependency resolver. It attempts to speed users' experience of installation and dependency resolution by locally caching metadata about dependencies.

proxpi

GitHub | PyPI

proxpi 是一个简单的 包索引,它使用缓存代理 PyPI 和其他索引。

proxpi is a simple package index which proxies PyPI and other indexes with caching.

Pulp-python

Docs | GitHub | PyPI

Pulp-python 是 Pulp 的 Python package index 插件。Pulp-python 支持由本地或 AWS S3 支持的镜像、包上传以及代理到多个包索引。

Pulp-python is the Python package index plugin for Pulp. Pulp-python supports mirrors backed by local or AWS S3, package upload, and proxying to multiple package indexes.

PyPI Cloud

Docs | GitHub | PyPI

警告

未维护,项目已归档

PyPI Cloud 是一个 package index 服务器,由 AWS S3 或其他云存储服务,或者本地文件提供支持。PyPI Cloud 支持对 PyPI 的重定向/缓存代理,以及认证和授权。

警告

Not maintained, project archived

PyPI Cloud is a package index server, backed by AWS S3 or another cloud storage service, or local files. PyPI Cloud supports redirect/cached proxying for PyPI, as well as authentication and authorisation.

pypiprivate

GitHub | PyPI

pypiprivate 将本地(或 AWS S3 托管的)包目录作为 包索引 提供。

pypiprivate serves a local (or AWS S3-hosted) directory of packages as a package index.

pypiserver

GitHub | PyPI

pypiserver 是一个极简的应用程序,作为组织内的私有 Python package index <Package Index>`(来自本地目录)使用,提供一个简单的 API 和浏览器界面。你可以使用标准上传工具上传私有包,用户可以使用 :ref:`pip 下载和安装这些包,而无需公开发布它们。使用 pypiserver 的组织通常会同时从 pypiserver 和 PyPI 下载包。

pypiserver is a minimalist application that serves as a private Python package index (from a local directory) within organizations, implementing a simple API and browser interface. You can upload private packages using standard upload tools, and users can download and install them with pip, without publishing them publicly. Organizations who use pypiserver usually download packages both from pypiserver and from PyPI.

PyScaffold

Docs | GitHub | PyPI

PyScaffold 是一个用于引导 Python 包的项目生成器,生成的包已准备好共享到 PyPI 并通过 pip 安装。它依赖于一组合理的默认配置,适用于已建立的工具(如 SetuptoolspytestSphinx),提供一个高效的开发环境,使开发者能够立即开始编码。PyScaffold 还可以与现有项目一起使用,简化打包过程。

PyScaffold is a project generator for bootstrapping Python packages, ready to be shared on PyPI and installable via pip. It relies on a set of sane default configurations for established tools (such as Setuptools, pytest and Sphinx) to provide a productive environment so developers can start coding right away. PyScaffold can also be used with existing projects to make packaging easier.

pywharf

GitHub | PyPI

警告

未维护,项目已归档

pywharf 是一个 包索引 服务器,在本地或从 GitHub 提供文件。

警告

Not maintained, project archived

pywharf is a package index server, serving files locally or from GitHub.

scikit-build

Docs | GitHub | PyPI

Scikit-build 是一个用于 CPython 的 Setuptools 封装器,用于构建 C/C++/Fortran/Cython 扩展。它使用 cmake (可在 PyPI 上获取)提供更好的支持,适用于额外的编译器、构建系统、交叉编译,以及定位依赖项及其相关的构建需求。为了加速和并行化大型项目的构建,用户可以安装 ninja (同样可在 PyPI 上获取)。

Scikit-build is a Setuptools wrapper for CPython that builds C/C++/Fortran/Cython extensions It uses cmake (available on PyPI) to provide better support for additional compilers, build systems, cross compilation, and locating dependencies and their associated build requirements. To speed up and parallelize the build of large projects, the user can install ninja (also available on PyPI).

scikit-build-core

Docs | GitHub | PyPI

Scikit-build-core 是一个用于 CPython C/C++/Fortran/Cython 扩展的构建后端。它使用户能够使用 cmake (可在 PyPI 上获取)编写扩展,以提供对额外编译器、构建系统、交叉编译以及定位依赖项及其相关构建需求的更好支持。如果系统上没有 CMake/Ninja,它们会自动从 PyPI 下载。

Scikit-build-core is a build backend for CPython C/C++/Fortran/Cython extensions. It enables users to write extensions with cmake (available on PyPI) to provide better support for additional compilers, build systems, cross compilation, and locating dependencies and their associated build requirements. CMake/Ninja are automatically downloaded from PyPI if not available on the system.

shiv

Docs | GitHub | PyPI

shiv 是一个命令行工具,用于构建完全自包含的 Python zipapp,如 PEP 441 中所述,但包含了所有的依赖项。它的主要目标是使得分发 Python 应用程序和命令行工具变得快速且简便。

shiv is a command line utility for building fully self contained Python zipapps as outlined in PEP 441, but with all their dependencies included. Its primary goal is making distributing Python applications and command line tools fast & easy.

simpleindex

GitHub | PyPI

simpleindex 是一个 package index,它将 URL 路由到多个包索引(包括 PyPI),提供本地(或云托管,例如 AWS S3,通过自定义插件)包目录的服务,并支持自定义插件。

simpleindex is a package index which routes URLs to multiple package indexes (including PyPI), serves local (or cloud-hosted, for example AWS S3, with a custom plugin) directories of packages, and supports custom plugins.

Spack

Docs | GitHub | Paper | Slides

Spack 是一个灵活的包管理器,旨在支持多个版本、配置、平台和编译器。Spack 类似于 Homebrew,但包是用 Python 编写的,并且进行了参数化,以允许轻松切换编译器、库版本、构建选项等。多个版本的包可以在同一系统上共存。Spack 旨在快速构建高性能科学应用程序,特别是在集群和超级计算机上。

Spack 目前不在 PyPI 上(尚未),但它无需安装,可以在从 GitHub 克隆后立即使用。

A flexible package manager designed to support multiple versions, configurations, platforms, and compilers. Spack is like Homebrew, but packages are written in Python and parameterized to allow easy swapping of compilers, library versions, build options, etc. Arbitrarily many versions of packages can coexist on the same system. Spack was designed for rapidly building high performance scientific applications on clusters and supercomputers.

Spack is not in PyPI (yet), but it requires no installation and can be used immediately after cloning from GitHub.

zest.releaser

Docs | GitHub | PyPI

zest.releaser 是一个 Python 包发布工具,提供了一个基于 twine 的抽象层。Python 开发者使用 zest.releaser 来自动化增量包版本号、更新变更日志、在版本控制中标记发布以及将新包上传到 PyPI。

zest.releaser is a Python package release tool providing an abstraction layer on top of twine. Python developers use zest.releaser to automate incrementing package version numbers, updating changelogs, tagging releases in source control, and uploading new packages to PyPI.

标准库项目

Standard Library Projects

ensurepip

Docs | Issues

Python 标准库中的一个包,提供了将 pip 引导到现有 Python 安装或虚拟环境中的支持。在大多数情况下,最终用户不会直接使用这个模块,而是在构建 Python 发行版时使用它。

A package in the Python Standard Library that provides support for bootstrapping pip into an existing Python installation or virtual environment. In most cases, end users won't use this module, but rather it will be used during the build of the Python distribution.

http.server

Docs | Issues

一个包和命令行接口,可以将目录托管为网站,例如作为一个 package index (参见 托管您自己的简单存储库)。

A package and command-line interface which can host a directory as a website, for example as a package index (see 托管您自己的简单存储库).

venv

Docs | Issues

Python 标准库中的一个包(从 Python 3.3 开始),用于创建 Virtual Environments。有关更多信息,请参见 创建和使用虚拟环境 部分。

A package in the Python Standard Library (starting with Python 3.3) for creating Virtual Environments. For more information, see the section on 创建虚拟环境.