Environment
Description
pip uninstall should canonicalize names when determining if they are installed.
How to Reproduce
$ pip install zope-interface # notice the dash
$ pip list
...
zope.interface # notice the dot
$ pip uninstall zope-interface # same name as in pip install
WARNING: Skipping zope-interface as it is not installed.
Expected result
In the example above, pip should have uninstalled zope.interface.
This is easily worked around when used manually, but is more annoying when the uninstall command is invoked by tools working with canonical names.
Looks like it's fixed in #8054.
@atugushev, I can still reproduce this using master pip—GH-8054 only seems to fix it for pip install and pip list {-u,-o} but pip list and pip uninstall.
@McSinyx
Checked on aff33ffc4c8c8bad46aa980ebc20f3de1072da5b:
$ pip --version
pip 20.2.dev1 from /Users/albert/Projects/pip/src/pip (python 3.8)
$ pip install zope-interface
Collecting zope-interface
Using cached zope.interface-5.1.0-cp38-cp38-macosx_10_9_x86_64.whl (192 kB)
Requirement already satisfied: setuptools in ./.venv/lib/python3.8/site-packages (from zope-interface) (45.2.0)
Installing collected packages: zope-interface
Successfully installed zope-interface
$ pip list | grep zope
zope.interface 5.1.0
$ pip uninstall zope-interface
Found existing installation: zope.interface 5.1.0
Uninstalling zope.interface-5.1.0:
Would remove:
/Users/albert/Projects/pip/.venv/lib/python3.8/site-packages/zope.interface-5.1.0-py3.8-nspkg.pth
/Users/albert/Projects/pip/.venv/lib/python3.8/site-packages/zope.interface-5.1.0.dist-info/*
/Users/albert/Projects/pip/.venv/lib/python3.8/site-packages/zope/interface/*
Proceed (y/n)?
Please have my apologies: you are correct, I was testing on an venv and it uses pip's latest release instead of the editable version. I can confirm that the problem is solved as of current master.
Ah, perfect. Thanks for investigating this @atugushev.