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 python
updates 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.