Conda

_images/conda_logo.svg

Package, dependency and environment management for any language—Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, Fortran, and more.

Conda is an open source package management system and environment management system that runs on Windows, macOS, and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.

Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because conda is also an environment manager. With just a few commands, you can set up a totally separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment.

In its default configuration, conda can install and manage the thousand packages at repo.anaconda.com that are built, reviewed and maintained by Anaconda®.

Conda can be combined with continuous integration systems such as Travis CI and AppVeyor to provide frequent, automated testing of your code.

The conda package and environment manager is included in all versions of Anaconda and Miniconda.

Conda is also included in Anaconda Enterprise, which provides on-site enterprise package and environment management for Python, R, Node.js, Java and other application stacks. Conda is also available on conda-forge, a community channel. You may also get conda on PyPI, but that approach may not be as up to date.

Conda

Conda-build

Miniconda

Help and support

  • Get free community support with our Google group.

  • Paid support, training and consulting options are available. Our teaching philosophy is that the best way to learn is with hands-on experience addressing real-world problems. Courses are available to individuals online, at numerous sites, or in-house at your place of business. We also offer consulting services for the analysis, management and visualization of scientific and business data or optimizing your processing workflows on modern hardware and GPUs.

  • Support is included in purchases of Anaconda Enterprise.

Join the conda email group

Join the mailing lists for both Anaconda and conda. Ask questions, answer questions, discuss ways to use conda, request new features and submit any other comments you may have.

Contribute recipes to GitHub

The conda community has transitioned into using feedstocks, which are repositories that contain package recipes and all of the necessary configurations for building those recipes. This enables these packages to be automatically built using continuous integration (CI) services.

You can clone or fork many package feedstocks from Anaconda Recipes, though you can’t submit new feedstocks to that GitHub organization. To contribute new conda package feedstocks, submit them to conda-forge or bioconda with a pull request.

Feedstocks are welcome for programs that use any license, such as GPL, BSD, MIT or Apache, and all of the recipes the conda-forge and bioconda repositories are released into the public domain.

Report bugs

If you find a bug, search to see if it has already been reported, and then report it if no one else has.

Issues with the conda documentation are tracked on GitHub at https://github.com/conda/conda-docs/issues.

For issues with conda, conda-build, repo.anaconda.com, anaconda.org, and specific conda packages, please see New Issues.

Presentations and blog posts

Conda announcements list

Conda Announcements is a low-traffic email list for news and updates directly from the conda core team. By providing your email address below, you consent to join Conda Announcements. It is not a marketing list. We never sell, give away or distribute your email address to third parties.

  • No more than 1 email per week, usually less.

  • Project announcements relevant to all conda users.

  • No corporate marketing hype.

  • No spam.

For convenience, we use MailChimp to manage subscriptions, including archived announcements.

Upon clicking the “Consent and Subscribe” button, you will receive an email that contains a link to confirm your subscription. You must click this link to activate your subscription. You can opt-out at any time by clicking the “Unsubscribe” link included in any email we send through this announcement list, or by contacting privacy@anaconda.com.

* indicates required

Contributing

New Issues

If your issue is a bug report or feature request for:

Development Environment, Bash

To set up an environment to start developing on conda code, we recommend the following steps:

  1. Fork the conda/conda repository, clone it locally anywhere you choose (an isolation miniconda will be set up within the clone directory), and set up git remote to point to upstream and fork. For detailed directions, see below.

1a. Choose where you want the repository located (not location of existing conda)

CONDA_PROJECT_ROOT="$HOME/conda"

1b. Clone the project, with upstream being the main repository. Make sure to click the Fork button above so you have your own copy of this repo.

GITHUB_USERNAME=kalefranz
git clone git@github.com:$GITHUB_USERNAME/conda "$CONDA_PROJECT_ROOT"
cd "$CONDA_PROJECT_ROOT"
git remote add upstream git@github.com:conda/conda
  1. Create a local development environment, and activate that environment

. dev/start

This command will create a project-specific base environment at ./devenv. If the environment already exists, this command will just quickly activate the already-created ./devenv environment.

To be sure that the conda code being interpreted is the code in the project directory, look at the value of conda location: in the output of conda info --all.

  1. Run conda’s unit tests using GNU make

make unit

or alternately with pytest

py.test -m "not integration and not installed" conda tests

or you can use pytest to focus on one specific test

py.test tests/test_create.py -k create_install_update_remove_smoketest

Development Environment, Windows cmd.exe shell

In these steps, we assume git is installed and available on PATH.

  1. Choose where you want the project located

set "CONDA_PROJECT_ROOT=%HOMEPATH%\conda"
  1. Clone the project, with origin being the main repository. Make sure to click the Fork button above so you have your own copy of this repo.

set GITHUB_USERNAME=kalefranz
git clone git@github.com:conda/conda "%CONDA_PROJECT_ROOT%"
cd "%CONDA_PROJECT_ROOT%"
git remote add %GITHUB_USERNAME% git@github.com:%GITHUB_USERNAME%/conda

To be sure that the conda code being interpreted is the code in the project directory, look at the value of conda location: in the output of conda info --all.

  1. Create a local development environment, and activate that environment

.\dev\start

This command will create a project-specific base environment at .\devenv. If the environment already exists, this command will just quickly activate the already-created .\devenv environment.

Conda Contributor License Agreement

In case you’re new to CLAs, this is rather standard procedure for larger projects. Django and even Python itself both use something similar.

Conda license

Conda is released under the 3-clause BSD license with the following terms:

(c) 2017 Continuum Analytics, Inc. (dba Anaconda, Inc.). https://www.anaconda.com. All Rights Reserved

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of Continuum Analytics, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CONTINUUM ANALYTICS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Dependencies

versioneer.py is Public Domain.

The ProgressBar package is redistributed under the BSD 3-clause license as per the terms of its license:

ProgressBar License

You can redistribute and/or modify this library under the terms of the GNU LGPL license or BSD license (or both).

LGPL

progressbar - Text progress bar library for python. Copyright (C) 2005 Nilton Volpato

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

BSD

progressbar - Text progress bar library for python Copyright (c) 2008 Nilton Volpato

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.