Packaging tools


Filter by tags:

conda
Anaconda

A cross-platform, language-agnostic package manager created by Anaconda Inc.

Website Documentation
mamba
QuantStack

Mamba is a reimplementation of the conda package manager in C++.

  • parallel downloading of repository data and package files using multi-threading
  • libsolv for much faster dependency solving, a state of the art library used in the RPM package manager of Red Hat, Fedora and OpenSUSE
  • core parts of mamba are implemented in C++ for maximum efficiency

At the same time, mamba utilize the same command line parser, package installation and deinstallation code and transaction verification routines as conda to stay as compatible as possible.

Website Documentation
micromamba
QuantStack

micromamba is a tiny version of the mamba package manager. It is a pure C++ package with a separate command line interface. It can be used to bootstrap environments (as an alternative to miniconda), but it’s currently experimental. The benefit is that it’s very tiny and does not come with a default version of Python.

micromamba works in the bash & zsh shell on Linux & OS X. It’s completely statically linked, which allows you to drop it in some place and just execute it.

Website Documentation
pip
PyPA

pip is the package installer for Python. You can use it to install packages from the Python Package Index and other indexes.

Website Documentation
poetry
Poetry

Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.

Website Documentation
flit
Flit

Flit is a simple way to put Python packages and modules on PyPI. It tries to require less thought about packaging and help you avoid common mistakes.

Website Documentation

A conda tool to work with multiple projects in development mode.

Website Documentation
pipenv
PyPA

Pipenv harnesses Pipfile, pip, and virtualenv into one single command.

Website Documentation
conda-build
Anaconda

The de facto tool to create conda packages. It creates environments to isolate build-times dependencies and performs checks after compilation to ensure relocatability and correct runtime dependencies.

Website Documentation
boa
QuantStack

boa is a package builder for conda packages. It is re-using a lot of the conda-build infrastructure, but replaces some parts. Specifically the solving stage is done using mamba, the fast conda-alternative (implemented in C++ and based on libsolv).

Website Documentation

A drop-in replacement for conda-build provided by Boa. It relies on conda-build for most parts, but replaces the solver and the error reports. It provides the conda mambabuild command.

Website Documentation
meson
mesonbuild

Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. It can produce Python wheels through the mesonpep517 package.

Website Documentation
mesonpep517
thiblahute

A simple module that implements PEP517 for the meson build system.

Website Documentation

It invokes the PEP 517 hooks to build a distribution package. It is a simple build tool and does not perform any dependency management.

Website Documentation
scikit-build
scikit-build

Improved build system generator for CPython C/C++/Fortran/Cython extensions. The scikit-build package is fundamentally just glue between the setuptools Python module and CMake.

Website Documentation

Setuptools is a collection of enhancements to the Python distutils library to easily build and distribute Python packages.

Website Documentation
distutils
Python

The distutils package in the standard library provides support for building and installing additional modules into a Python installation. Most Python users will not want to use this module directly, but enhanced alternatives like setuptools.

Website Documentation

This Numpy subpackage provides enhanced distutils functionality to make it easier to build and install sub-packages, auto-generate code, and extension modules that use Fortran-compiled libraries.

Website Documentation
constructor
Anaconda

Constructor is a tool which allows constructing an installer for a collection of conda packages. It solves needed packages using user-provided specifications, and bundles those packages.

Website Documentation
pex
pantsbuild

pex is a library for generating .pex (Python EXecutable) files which are executable Python environments in the spirit of virtualenvs. pex is an expansion upon the ideas outlined in PEP 441.

Website Documentation
shiv
LinkedIn

shiv is a command line utility for building fully self contained Python zipapps as outlined in PEP 441, but with all their dependencies included.

Website Documentation
pyinstaller
pyinstaller

PyInstaller freezes (packages) Python applications into stand-alone executables, under Windows, GNU/Linux, Mac OS X, FreeBSD, Solaris and AIX.

Website Documentation
conda-pack
Anaconda

conda-pack is a command line tool for creating relocatable archives of conda environments that can be installed on other systems and locations.

Website Documentation
conda-docker
conda-incubator

Create minimal Docker images from conda environments, without using Docker.

Website Documentation
conda-store
Quansight

The core philosophy of conda-store is to serve identical conda environments in as many ways as possible. Conda Store controls the environment lifecycle: management, builds, and serving of environments.

Website Documentation

This is a command line client that provides an interface to Anaconda Cloud. Primarily used to upload packages to Anaconda.org channels.

Website Documentation
twine
PyPA

A utility for publishing Python packages on PyPI. It provides build system independent uploads of source and binary distribution artifacts for both new and existing projects.

Website Documentation
zest.releaser
Zest Software

zest.releaser is collection of command-line programs to help you automate the task of releasing a Python project. It updates the version number, populates the changelog, creates the tags and, optionally, publishes to PyPI.

Website Documentation

setuptools_scm handles managing your Python package versions in SCM metadata instead of declaring them as the version argument or in a SCM managed file.

Website Documentation
versioneer
Brian Warner

This is a tool for managing a recorded version number in distutils-based python projects. The goal is to remove the tedious and error-prone “update the embedded version string” step from your release process. Making a new release should be as easy as recording a new tag in your version-control system, and maybe making new tarballs.

Website Documentation
conda-smithy
conda-forge

conda-smithy is a tool for combining a conda recipe with configurations to build using freely hosted CI services into a single repository, also known as a feedstock.

Website Documentation

A package installed by conda-forge each time a build is run on CI. It normalizes the system settings found on different CI providers for a consistent build configuration across platforms.

Website Documentation

The baseline versions of software for the conda-forge ecosystem, essential to maintain ABI compatibility across the channel.

Website Documentation

Build Python wheels for all the platforms on CI with minimal configuration.

Website Documentation
multibuild
Matthew Brett

Machinery for building and testing Python Wheels for Linux, OSX and (less flexibly) Windows.

Website Documentation
conda-skeleton
Anaconda

The conda-skeleton command picks up the PyPI package metadata and prepares an equivalent conda-build recipe you can use to build a conda package.

Website Documentation

Create, extract and convert conda packages of various formats.

Website Documentation
grayskull
conda-incubator

The Grayskull project was created with the intention to eventually replace the conda skeleton. The main goal of this project is to generate concise recipes for conda-forge.

Website Documentation
conda-press
conda-incubator

Press conda packages into wheels. Is allows us to build out a pip-usable package index which is ABI compatible with conda packages.

Website Documentation
conda-verify
Anaconda

conda-verify is a tool for (passively) verifying conda recipes and conda packages. The purpose of this verification process is to ensure that recipes don’t contain obvious bugs.

Website Documentation

Signing and verification tools for Conda based on The Update Framework

Website Documentation

a command line tool to facilitate the creation of Python wheel packages for Linux (containing pre-compiled binary extensions) that are compatible with a wide variety of Linux distributions

Website Documentation

Verify installed packages have compatible dependencies.

Website Documentation
delocate
Matthew Brett

Find and copy needed dynamic libraries into python wheels on MacOS

Website Documentation
check-wheel-contents
John T. Wodder II

Check the contents of your wheel. It will notify you of several common errors & mistakes that can be detected.

Website Documentation
machomachomangler
Nathaniel J. Smith

This is a little library for mangling Mach-O and PE files in various ways. These are the formats used for executables and shared libraries on MacOS and Windows, respectively.

Website Documentation
patchelf
NixOS

A small utility to modify the dynamic linker and RPATH of ELF executables.

Website Documentation
lief
Quarks Lab

The purpose of this project is to provide a cross platform library which can parse, modify and abstract ELF, PE and MachO formats.

Website Documentation

virtualenv is a tool to create isolated Python environments. Since Python 3.3, a subset of it has been integrated into the standard library under the venv module.

Website Documentation
venv
Python

The venv module in the standard library provides support for creating lightweight virtual environments with their own site directories, optionally isolated from system site directories.

Website Documentation
virtualenvwrapper
virtualenvwrapper

virtualenvwrapper is a set of extensions to Ian Bicking’s virtualenv tool. The extensions include wrappers for creating and deleting virtual environments and otherwise managing your development workflow.

Website Documentation
pew
berdario

Python Env Wrapper is a set of commands to manage multiple virtual environments. Pew can create, delete and copy your environments, using a single command to switch to them wherever you are, while keeping them in a single (configurable) location.

Website Documentation
conda-env
Anaconda

Conda/Mamba/Micromamba are able to handle their own virtual environments through ‘conda env’. They are not compatible with virtualenv-type environments, but they serve the same purpose.

Website Documentation
conda-index
Anaconda

Update package index metadata files (channeldata.json, repodata.json) in directories containing conda packages.

Website Documentation
conda-mirror
conda-incubator

Mirrors an upstream conda channel to a local directory.

Website Documentation
quetz
QuantStack

The quetz project is an open source server for conda packages. It reimplements Anaconda.org functionalities with an API-first approach.

Website Documentation

Warehouse is the software that powers PyPI.

Website Documentation
devpi
devpi

Python PyPi staging server and packaging, testing, release tool

Website Documentation
pypiserver
pypiserver

pypiserver is a minimal PyPI compatible server for pip or easy_install. It is based on bottle and serves packages from regular directories.

Website Documentation
ensurepip
Python

The ensurepip standard library package provides support for bootstrapping the pip installer into an existing Python installation or virtual environment.

Website Documentation
ensureconda
conda-incubator

Ensureconda is a CLI tool that will find a preexisting conda/mamba executable, install one if none was found, and return the path of the found/installed location.

Website Documentation
condacolab
conda-incubator

A Python package to install Conda (and friends) on live Google Colab instances.

Website Documentation
setup-miniconda
conda-incubator

An action to enable the preinstalled Miniconda or download and install Miniconda/Miniforge/Mambaforge on Github Actions workflows.

Website Documentation

A GitHub Actions action to create conda environments with micromamba.

Website Documentation
gator
QuantStack

The Mamba Navigator, a Web UI for managing conda environments. Provides Conda/Mamba environment and package management as a standalone application or as extension for JupyterLab.

Website Documentation
vscode-micromamba
QuantStack

Provides a convenient way to install developer tools in VSCode workspaces from conda-forge with micromamba. Get NodeJS, Go, Rust, Python or JupyterLab installed by running a single command.

Website Documentation