Name | Features | Description | Depends On | Language | Created | Owner | Stars | License | Links | GitHub Description | Last GitHub Release |
---|---|---|---|---|---|---|---|---|---|---|---|
build | build will invoke the PEP 517 hooks to build a distribution package. It is a simple build tool and does not perform any dependency management. | ||||||||||
cibuildwheel | On your CI server, cibuildwheel builds and tests your wheels across all of your platforms (macOS, linux, windows). Supports GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, and GitLab CI. | ||||||||||
conda | Conda is a cross-platform, language-agnostic binary package manager. It is the package manager used by Anaconda installations, but it may be used for other systems as well. Conda makes environments first-class citizens, making it easy to create independent environments even for C libraries. | ||||||||||
cython | Cython generates C code from your Python code, then builds it into a shared object (.so file). These .so files are C extension modules, which can be imported by your Python code, where they run at the speed of a C program. For example, cythonize --build hello.py will build hello.so which can be imported directly in Python code elsewhere with import hello . | ||||||||||
flit | Flit is a simple way to put pure Python packages and modules on PyPI. | pip, venv | |||||||||
hatch | Hatch is a tool for managing the entire lifecycle of a project including creation, versioning, building, environment management, and publishing. Its plugin system allows for easily extending functionality. | pip, virtualenv | |||||||||
nox | nox is a command-line tool that automates task running, application deployment, and testing in multiple Python environments, similar to tox. Unlike tox, Nox uses a standard Python file for configuration. | pip, venv, virtualenv | |||||||||
Nuitka | Nuitka can compile Python programs to single executables. And the emphasis is on compile: Nuitka actually converts Python to C and compiles that. Nuitka is effectively an alternate Python interpreter. | ||||||||||
packaging | Reusable core utilities for various Python Packaging interoperability specifications. This library provides utilities that implement the interoperability specifications which have clearly one correct behaviour (eg: PEP 440) or benefit greatly from having a single shared implementation (eg: PEP 425). The packaging project includes the following: version handling, specifiers, markers, requirements, tags, utilities. | ||||||||||
pdm | Helps you declare, manage, and install dependencies of Python projects. It does not use virtual environments at all. Instead it installs packages to a local directory called __pypackages__ (PEP-582). | ||||||||||
pep517 | Given source code and a build backend (as specified by PEP-518), `pep517` provides access to various backend "hooks" such as building a binary distribution. You are responsible for ensuring build requirements are available. | ||||||||||
pex | Makes "python executables", which are files that can be run directly, but require a python interpreter available on the system. This is part of a group of tools that utilize the zipapp feature of the standard library. | zipapp | |||||||||
pip | pip is the package installer for Python. You can use pip to install packages from the Python Package Index (PyPI) and other indexes. | ||||||||||
pip-audit | pip-audit is a tool for scanning Python environments for packages with known vulnerabilities. It uses thePython Packaging Advisory Database via the PyPI JSON API as a source of vulnerability reports. | pip, venv | |||||||||
pip-tools | pip-tools takes abstract dependencies and outputs concrete dependencies to a lock file. | pip | |||||||||
pipenv | pipenv automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from a Pipfile as you install/uninstall packages. It also generates Pipfile.lock, which is used to produce deterministic builds. | pip, venv, virtualenv | |||||||||
pipx | pipx runs and installs cli tools in virtual environments. It focuses on and improves on a specific use case handled by pip. | pip, venv | |||||||||
poetry | Poetry helps you declare, manage and install dependencies of Python projects. It also can publish packages to PyPI. | pip, virtualenv | |||||||||
pybind11 | pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code. | ||||||||||
pyenv | pyenv lets you switch between multiple versions of Python on your machine | ||||||||||
pyflow | Pyflow streamlines working with Python projects and files. "Its an easy-to-use CLI app with a minimalist API. " Never worry about having the right version of Python or dependencies. Instead of using virtual environments, it installs packages to a local directory named __pypackages__ (PEP-582), | ||||||||||
pyinstaller | PyInstaller bundles a Python application and all its dependencies into a single package. The user can run the packaged app without installing a Python interpreter or any modules. PyInstaller supports Python 3.7 and newer, and correctly bundles many major Python packages such as numpy, matplotlib, PyQt, wxPython, and others. | ||||||||||
PyO3 | Rust bindings for Python, including tools for creating native Python extension modules. Running and interacting with Python code from a Rust binary is also supported. | ||||||||||
pyodide | Pyodide is a Python distribution for the browser and Node.js based on WebAssembly. Pyodide is a port of CPython to WebAssembly/Emscripten. Pyodide makes it possible to install and run Python packages in the browser with micropip. Any pure Python package with a wheel available on PyPi is supported. Many packages with C extensions have also been ported for use with Pyodide. You can try the REPL here. | wasm | |||||||||
PyOxidizer | PyOxidizer is a [Rust] application for streamlining the creation of distributable Python applications. Binaries produced with PyOxidizer are portable. PyOxidizer generate binaries embedding a Python interpreter and a custom Python application. | ||||||||||
pyscript | A frontend framework to write Python apps in the browser | pyodide, wasm | |||||||||
setuptools | Setuptools is a fully-featured, actively-maintained, and stable library to build redistributable packages from source, but does not publish them to PyPI. It provides the function that is called in the setup.py files you've probably seen before. | ||||||||||
shiv | Makes "python executables", which are files that can be run directly, but require a python interpreter available on the system. This is part of a group of tools that utilize the zipapp feature of the standard library. | ||||||||||
tox | Command line driven CI frontend and development task automation tool | pip, venv, virtualenv | September, 2010 | ||||||||
twine | Twine is a utility for publishing Python packages on PyPI. Twine only publishes built packages; it does not build them itself. | ||||||||||
The venv module provides support for creating lightweight “virtual environments” with their own site directories, optionally isolated from system site directories. Each virtual environment has its own Python binary (which matches the version of the binary that was used to create this environment) and can have its own independent set of installed Python packages in its site directories. venv was introduced in Python 3.5 to adopt the 3rd party library virtualenv into CPython's standard library. | Python | September, 2015 | CPython | ||||||||
virtualenv | A tool for creating isolated virtual Python environments. This is a predecessor of the Python 3.5+ standard library venv module, with improvements such as vastly faster virtualenv creation added in subsequent versions. | ||||||||||
xar | Similar to a zipapp, but contents do not have to be extracted to run. A .xar file is a read-only file system image which looks like a regular directory to user-space programs. This can replace virtualenvs and PEX files with a system that is faster, has less overhead, is more compatible, and achieves better compression. This requires a one-time installation of a driver for this file system (SquashFS). | FUSE filesystem, linux/mac | |||||||||
zipapp | Makes "python executables", which are files that can be run directly, but require a python interpreter available on the system. This is part of a group of tools that utilize the zipapp feature of the standard library. |