To save me having to look up or try to remember the various pip arguments and usage the next time I need to do something like update the pyls Python LSP server , here is a cheatsheet for how I use pip.
First, I always use pip with a 'user' install (the
--user
argument), which installs things in
$HOME/.local
. On my machines, pip puts binaries in .local/bin and installed Python packages in .local/lib/pythonX.Y; some might appear in .local/libexec if they had compiled portions, but I'm not sure. This is also where running a setup.py with --user puts things, which is unsurprising (I install Django test versions this way).
To install something, the basic usage is '
pip install --user
<package>
'. Once packages are installed, I can check for what packages have updates available with '
pip list --user --outdated
'. To update a package, it's '
pip install --user --upgrade <package>
'. I'm not sure what happens if you leave out the --upgrade.
(Plain '
pip list --user
' lists what you have installed and leaves out checking for updates.)
Now that I've looked it up, removing a package is done with '
pip
uninstall <package>
'. There is '
pip check
' to see if all your dependencies are fine, but this has potentially confusing output because it has no '
--user
' argument and so apparently checks both your packages and the system installed packages; on Ubuntu, the system packages may not have dependencies that 'pip check' is happy with. Similarly, 'pip uninstall' has no --user argument and will happily try to remove system packages instead of your own packages. Also, I don't think removing packages warns you about breaking dependencies.
Really there isn't much to my pip usage and I probably don't normally need a cheatsheet. But sometimes I don't deal with this level of Python stuff for long enough that it starts dropping out of my memory.
(So far, my only use of pip is to keep python-language-server up to date, and I don't necessarily remember to check and update it on a regular basis.)