Search
pip is the native Python package manager. It is used to install packages from several repositories, mainly pypi.org. It should be already on your system with Python 2 >=2.7.9 or Python 3 >=3.4. If you don't have it, follow the installation instructions on the official website, or install it with a conda distribution.
Install package
$ pip install <pkg>
Upgrade a package
$ pip install --upgrade <pkg>
Uninstall a package
$ pip uninstall <pkg>
Show install locations and files
$ pip show --files <pkg>
Export all installed packages
$ pip freeze > requirements.txt
Install from list
$ pip install -r requirements.txt
For working in Python on multiple projects one inevitably faces the problem of having to maintain two or more different sets of libraries and interpreters, each of their respective versions, that don't have to be compatible. For solving this issue, the idea of environments was implemented. The environment is basically a set of all dependencies of a project, including an interpreter and all needed libraries. Such an environment is therefore easily manageable separately, so changing a version of the library doesn't break any other project. When running a code “inside”, the only thing needed is then to set all relevant $PATH variables. For using environments, many tools have been developed, so they pose no great additional inconvenience.
There are two mainstream ways for managing Python environments, each effectively presenting its implementation of the idea
virtualenv is a low-level native tool for managing virtual environments. That is all. No rocket science.
The environment is created in a dedicated directory, usually in the root of your project. You basically need only a few commands for setting up and then you turn to pip for package management.
To create a new environment, move to the root of your project directory and run
$ virtualenv env
env stands for the newly created environment directory and it's also a common practice to name it this way
Activating the environment
$ source env/bin/activate
Deactivating
$ deactivate
After activation, you can use pip normally without the need for sudo because it installs the packages locally to the environment.
Conda is an open-source package management system and environment management system. That means that it combines both discussed problems in one tool. It is a popular tool, which is strongly supported and even includes repositories with over 7,500+ packages. The possibility to very easily run and manage your own repositories might not seem important right now (and is definitely not a part of this course), but it is an important business feature that you might encounter someday. For using conda for managing virtual environments, you have two options for installation.
In both of these cases, one gets full powers of conda, the only thing that differs is the set of default packages for environments. Thus we recommend installing Miniconda, which comes with lower overhead. Official installation instructions are here. The prefered version is Miniconda Linux 64-bit and Python 3. To deactivate automatic configuration of default base environment:
$ conda config --set auto_activate_base false
Here we list the most important commands you might need for starting with conda. See the documentation or the cheat sheet for more.
Information about conda and its version
$ conda info
Create a new environment
$ conda create --name <name> <pkgs>
Using an environment
$ conda activate <name>
Switching out of the environment
$ conda deactivate
List packages in the current environment
$ conda list
Search for a package in the current environment
$ conda search <pkg>
Install a package in the current environment
$ conda install <pkg>
List all environments
$ conda info --envs
Delete an environment
$ conda remove --name <name> --all