无法卸载没有包的项目

时间:2017-11-28 19:43:18

标签: python pip

在尝试为另一个问题构建MCVE时,我创建了一个example目录,其中包含一个文件,setup.py,其中包含以下内容:

from setuptools import setup

setup(
    name='example',
)

并用

安装
python3.6 setup.py sdist
python3.6 -m pip install --user dist/example-0.0.0.tar.gz

没有实际的软件包或模块,但是安装了某些东西

redacted:~/example> python3.6 -m pip list | grep example
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
example (0.0.0)

现在我无法卸载它:

redacted:~/example> python3.6 -m pip uninstall example
Can't uninstall 'example'. No files were found to uninstall.

Other posts建议我必须从.pth目录中删除site-packages个文件,但我看不到:

redacted:~/example> find ~/.local/lib/python3.6/site-packages/ -name '*.pth'
redacted:~/example> 

我刚刚对我的系统做了什么,以及如何撤消它?

2 个答案:

答案 0 :(得分:0)

由于您未指定任何文件,因此无需安装任何内容。所以你也无法卸载任何东西。

答案 1 :(得分:0)

看起来这可能没有安装任何东西。甚至不是元数据,虽然它似乎一开始就是这样。

python3.6 -m pip而不是pip3.6运行pip会将当前目录放在导入路径上 - 在我的情况下,当前目录是具有setup.py的目录和由目录构建的目录python3.6 setup.py sdist。 pip搜索导入路径以查找已安装的包,当它运行到空项目的元数据时,它会变得混乱。它似乎发现此处列出的所有0个文件都已安装,因此必须安装该项目。

在同一目录中运行python2.7 -m pip list也会为example (0.0.0)生成一个条目,即使我绝对没有在2.7上安装它。运行pip2.7 listpip3.6 list不会显示该条目。从其他目录运行python2.7 -m pip listpython3.6 -m pip list也不会显示条目:

redacted:~/example> python2.7 -m pip list 2>&1 | grep example
example (0.0.0)
redacted:~/example> python3.6 -m pip list 2>&1 | grep example
example (0.0.0)
redacted:~/example> pip2.7 list 2>&1 | grep example
redacted:~/example> pip3.6 list 2>&1 | grep example
redacted:~/example> cd
redacted:~> python2.7 -m pip list 2>&1 | grep example
redacted:~> python3.6 -m pip list 2>&1 | grep example
redacted:~> 

鉴于此输出,我认为我不需要做任何事情来卸载此软件包。