pip
pip is Python's package management system. It references packages available in the official Python Package Index (PyPI).
Running pip as root is not advised. It can render important system tools like emerge useless.[1]
Install
Emerge
Install dev-python/pip:
root #
emerge --ask dev-python/pip
Usage
In order for pip to operate correctly when installing new packages an active internet connection is a requirement.
Invocation
user $
pip --help
Package installation
pip should not be used for package installation outside of a virtual environment. Doing so can break parts of the local Python installation. Even using pip install with the
--user
parameter can break things, as packages installed in this way will still be included in sys.path. Accordingly, pip will print an error message if called outside of a virtual environment. See PEP 668 and externally managed environments for details.It is important to understand that packages installed using pip will not be tracked by Portage, which can lead to conflicts.
To install package
using the pip command, first create and activate a virtual environment:
user $
python -m venv /path/to/venv
user $
. /path/to/venv/bin/activate
Then install into the virtual environment:
user $
pip install <package>
To exit the virtual environment, run:
user $
deactivate
The virtual environment is not deleted, and can be re-entered by re-sourcing the activate file (with the command beginning with the period).
To make a library installed in a virtual environment available to other software in that environment, add the relevant path to the PYTHONPATH:
user $
export PYTHONPATH="${PYTHONPATH}:/path/to/venv/lib/python-<version>/site-packages/"
To create a virtual environment with access to the system packages (i.e. the packages installed via Portage), use the --system-site-packages
option when creating the environment:
user $
python -m venv --system-site-packages /path/to/venv
Once the virtual environment has been activated, confirm that the system packages are available by running pip list
.
Removal
Again, this should probably only ever be used in a virtual environment.
To remove a package using pip:
user $
pip uninstall <package>
See also
- Application level package management — provides best practice recommendations on managing the coexistence of operating system and application level package managers on Gentoo.
- Gem — programs and libraries for the Ruby programming language.
- Portage — the official package manager and distribution system for Gentoo.
- Project:Python/Dependencies - How to turn PyPI dependencies to those of ebuild.
External resources
- Externally managed environments
- PEP 668
- Python/Virtual environment (ArchWiki article) - Isolated Python's environment, enabling sandboxed installation of packages.