我最初是python3-pip
通过安装的apt
,但错误地使用而不是用户安装来安装软件包sudo
。我遇到了大量带有回溯和导入错误的错误,因此我尝试从系统中完全删除 pip 并重新开始。
然而,即使卸载了所有 pip 包和apt purge python3-pip
,
pip
,,当我按下 Tab 键时(在新的 shell 上,重新启动后)pip3
,它pip3.6
仍然显示在我的 Tab 完成建议中。- 我在以下位置找到了几个 Python 存根脚本
~/.local/bin/
:~/.local/bin/pip
~/.local/bin/pip3
~/.local/bin/pip3.6
这些脚本每个只有大约 10 行,并且只包含 pip 导入。但是,当我将这些文件移出此目录并使用 重新安装时apt install python3-pip
,这些文件在安装过程中不会重新生成。
我很困惑到底发生了什么,pip 使用了什么样的层次结构;这一切对我来说似乎有点神秘。它的目的是什么?~/.local/bin/
为什么pip3
只在某些时候用脚本填充它?
我该怎么做才能确保pip3
在我安装/使用它之后所做的任何更改都被删除/恢复?
答案1
经过进一步研究,我发现 bash 有时会将脚本缓存在 中,PATH
并将其放入 中~/.local/bin
。因此,即使在 之后apt purge
,当用户尝试使用制表符完成时,程序似乎仍然是这样的。
您可以使用以下命令检查某些内容是否正在被哈希处理:
$ type pip3
你可以使用以下命令清除哈希值
$ hash -d pip3
或者
$ hash -r