Displaying 34 of 34 tools
NameFeaturesDescriptionDepends OnLanguageCreatedOwnerStarsLicenseLinksGitHub DescriptionLast 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, virtualenvSeptember, 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.
PythonSeptember, 2015CPython
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.
Displaying 34 of 34 tools