====== PIP ======
[[https://pypi.org/project/pip/PyPi]] or **pip** is the **Packager Installer for Python** and it's a great tool to quickly install and manage python tools.
Since PIP behaves like a package manager and **will** mess up with your Linux installation, Gentoo folks have devised a cool [[https://wiki.gentoo.org/wiki/Pip|way]] to let you use pip for anything that is not already packaged into Portage, Gentoo packaging system.
The basic idea is: you **do not** use pip as root, ever, but you use pip as **user** to install specific packages and tools locally to the user without messing up with other users or the system itself.
All you need to do is emerge pip:
emerge pip
and enable pip usage for specific users.
===== Enabling PIP per user =====
Create a file called **~/.config/pip/pip.conf** in your user home folder. You will need to create the sub-folders, probably.
The content of the file must be:
[global]
break-system-packages = true
user = true
and that's it! Now **pip** and specifically **pip install** will work just fine for your user. **Do not do this for user root**.
===== Virtual Environments ====
V'envs are pretty common using PIP, to create a venv with your user type:
su - user
python -m venv my_venv
source my_venv/bin/activate
You might want to put at the end of your **~/bashrc**:
source ~/my_venv/bin/activate
for automatic loading of venv variables.
Also, PIP will most probably require you to modify your venv setting. Open **~/my_venv/pyvenv.cfg** and set //include-system-site-packages = true//, like this:
include-system-site-packages = true
And, last, you most probably **want** to add ~/.local/bin to your path, by adding at the end of your user **.bashrc** the following line:
export PATH=$PATH:~/.local/bin