How packages are made
Every package begins as source code written by its developers. Before you can install it, that source code must be bundled into a format that works across operating systems. This process is called building, and it creates a package file (often referred to as an artifact in build documentation) that’s ready for installation. In the conda ecosystem, this build process is handled by conda-build, which compiles source code (if needed), specifies dependencies, and creates installable packages that can be shared through conda channels and installed into environments.Package types
There are many kinds of software packages, but within the conda ecosystem the most common types you’ll work with are conda packages and Python packages.- Conda packages
- Conda packages are built specifically for the conda package manager. They can include software written in multiple programming languages, such as Python, R, or C/C++. These packages are pre-built and ready to install, which allows for fast and reliable installation across Windows, macOS, and Linux platforms. Each conda package is a compressed archive (typically a
.tar.bz2or.condafile) that contains all the files and metadata needed to install the software.
Conda packages differ from typical Python packages because they can include compiled code and non-Python components. While the package contains everything needed for that piece of software, conda installs its required dependencies as separate packages and ensures they are compatible within the environment.
For more information about the internal structure of conda packages (including file formats, metadata, and how they’re linked into environments), see the official conda docs. - Python packages
- Python packages are distributed primarily through the Python Package Index (PyPI) and installed using pip, Python’s native package installer. Pip packages typically contain only Python code and are developed and shared by the Python open-source community.While conda is the recommended tool for installing packages in conda environments, you can also use pip within conda environments if a package is only available on PyPI. For more information, see Installing pip packages.
For more information about managing packages with conda, see Packages.