conda vs. pip vs. virtualenv¶
If you are already familiar with pip or virtualenv, please see our chart comparing
Conda, pip, and virtualenv.
If you’ve used pip and virtualenv in the past, you can use conda to perform all of the same operations. Pip is a package manager, and Virtualenv is an environment manager. Conda is both.
| Task | Conda package and environment manager command | Pip package manager command | Virtualenv environment manager command |
|---|---|---|---|
| Install a package | conda install $PACKAGE_NAME |
pip install $PACKAGE_NAME |
X |
| Update a package | conda update --name $ENVIRONMENT_NAME $PACKAGE_NAME |
pip install --upgrade $PACKAGE_NAME |
X |
| Update package manager | conda update conda |
Linux/OSX: pip install -U pip Win: python -m pip install -U pip |
X |
| Uninstall a package | conda remove --name $ENVIRONMENT_NAME $PACKAGE_NAME |
pip uninstall $PACKAGE_NAME |
X |
| Create an environment | conda create --name $ENVIRONMENT_NAME python |
X | cd $ENV_BASE_DIR; virtualenv $ENVIRONMENT_NAME |
| Activate an environment | source activate $ENVIRONMENT_NAME |
X | source $ENV_BASE_DIR/$ENVIRONMENT_NAME/bin/activate |
| Deactivate an environment | source deactivate |
X | deactivate |
| Search available packages | conda search $SEARCH_TERM |
pip search $SEARCH_TERM |
X |
| Install package from specific source | conda install --channel $URL $PACKAGE_NAME |
pip install --index-url $URL $PACKAGE_NAME |
X |
| List installed packages | conda list --name $ENVIRONMENT_NAME |
pip list |
X |
| Create requirements file | conda list --export |
pip freeze |
X |
| List all environments | conda info --envs |
X | Install virtualenv wrapper, then lsvirtualenv |
| Install other package manager | conda install pip |
pip install conda |
X |
| Install Python | conda install python=x.x |
X | X |
| Update Python | conda update python * |
X | X |
conda update pythonupdates to the most recent in the series, so any Python 2.x would update to the latest 2.x, and any Python 3.x to the latest 3.x.