This guide discusses how to install packages using pip anda virtual environment manager: either venv for Python 3 or virtualenvfor Python 2. These are the lowest-level tools for managing Pythonpackages and are recommended if higher-level tools do not suit your needs.
Note
The Pillow FreeBSD port and packages are tested by the ports team with all supported FreeBSD versions and against Python 2.7 and 3.x. Building From Source ¶. Apr 25, 2018 Dismiss Join GitHub today. GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
This doc uses the term package to refer to aDistribution Package which is different from a ImportPackage that which is used to import modules in your Python source code.
pip is the reference Python package manager. It’s used to install andupdate packages. You’ll need to make sure you have the latest version of pipinstalled.
The Python installers for Windows include pip. You should be able to accesspip using:
You can make sure that pip is up-to-date by running:
Debian and most other distributions include a python-pip package, if youwant to use the Linux distribution-provided versions of pip seeInstalling pip/setuptools/wheel with Linux Package Managers.
You can also install pip yourself to ensure you have the latest version. It’srecommended to use the system pip to bootstrap a user installation of pip:
Afterwards, you should have the newest pip installed in your user site:
Note
If you are using Python 3.3 or newer, the venv
module isthe preferred way to create and manage virtual environments.venv is included in the Python standard library and requires no additional installation.If you are using venv, you may skip this section.
virtualenv is used to manage Python packages for different projects.Using virtualenv allows you to avoid installing Python packages globallywhich could break system tools or other projects. You can install virtualenvusing pip.
On macOS and Linux:
On Windows:
venv (for Python 3) and virtualenv (for Python 2) allowyou to manage separate package installations fordifferent projects. They essentially allow you to create a “virtual” isolatedPython installation and install packages into that virtual installation. Whenyou switch projects, you can simply create a new virtual environment and nothave to worry about breaking the packages installed in the other environments.It is always recommended to use a virtual environment while developing Pythonapplications.
To create a virtual environment, go to your project’s directory and runvenv. If you are using Python 2, replace venv
with virtualenv
in the below commands.
On macOS and Linux:
On Windows:
The second argument is the location to create the virtual environment. Generally, youcan just create this in your project and call it env
.
venv will create a virtual Python installation in the env
folder.
Note
You should exclude your virtual environment directory from your versioncontrol system using .gitignore
or similar.
Before you can start installing or using packages in your virtual environment you’llneed to activate it. Activating a virtual environment will put thevirtual environment-specificpython
and pip
executables into your shell’s PATH
.
On macOS and Linux:
On Windows:
You can confirm you’re in the virtual environment by checking the location of yourPython interpreter, it should point to the env
directory.
On macOS and Linux:
On Windows:
As long as your virtual environment is activated pip will install packages into thatspecific environment and you’ll be able to import and use packages in yourPython application.
If you want to switch projects or otherwise leave your virtual environment, simply run:
If you want to re-enter the virtual environment just follow the same instructions aboveabout activating a virtual environment. There’s no need to re-create the virtual environment.
Now that you’re in your virtual environment you can install packages. Let’s install theRequests library from the Python Package Index (PyPI):
pip should download requests and all of its dependencies and install them:
pip allows you to specify which version of a package to install usingversion specifiers. For example, to installa specific version of requests
:
To install the latest 2.x
release of requests:
To install pre-release versions of packages, use the --pre
flag:
Some packages have optional extras. You can tell pip to install these byspecifying the extra in brackets:
pip can install a package directly from source, for example:
Additionally, pip can install packages from source in development mode,meaning that changes to the source directory will immediately affect theinstalled package without needing to re-install: /voice-recorder-for-mac-yosemite.html.
pip can install packages directly from their version control system. Forexample, you can install directly from a git repository:
For more information on supported version control systems and syntax, see pip’sdocumentation on VCS Support.
If you have a local copy of a Distribution Package’s archive (a zip,wheel, or tar file) you can install it directly with pip:
If you have a directory containing archives of multiple packages, you can tellpip to look for packages there and not to use thePython Package Index (PyPI) at all:
This is useful if you are installing packages on a system with limitedconnectivity or if you want to strictly control the origin of distributionpackages.
If you want to download packages from a different index than thePython Package Index (PyPI), you can use the --index-url
flag:
If you want to allow packages from both the Python Package Index (PyPI)and a separate index, you can use the --extra-index-url
flag instead:
pip can upgrade packages in-place using the --upgrade
flag. For example, toinstall the latest version of requests
and all of its dependencies:
Instead of installing packages individually, pip allows you to declare alldependencies in a Requirements File. Forexample you could create a requirements.txt
file containing:
And tell pip to install all of the packages in this file using the -r
flag:
Pip can export a list of all installed packages and their versions using thefreeze
command:
Which will output a list of package specifiers such as:
This is useful for creating Requirements Files that can re-createthe exact versions of all packages installed in an environment.