A cheatsheet for Python's pip for how I use it
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
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.
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 '
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
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.)