答案1
hash -r
只影响当前 shell,因此重新启动会使重新哈希变得毫无意义。更改路径应该会导致您的路径自动重新哈希。因此,hash -r
只有当您在路径中安装了新内容而不修改路径或重新启动 shell 时才需要这样做。缓存不会“回来”,这里的问题不是缓存。 (这是一个 XY 问题。技术支持可能无法帮助您,因为您要求他们解决一个不存在的问题。)
哈希表并不是导致在您的路径中找到某些内容的原因。的设置$PATH
就是这样做的。如果发现错误的可执行文件,那是因为它在您的路径中早于正确的可执行文件,而且可能正确的可执行文件根本不在您的路径中。
如果您使用模块或虚拟环境,则需要卸载模块或停用包含错误 python 的虚拟环境。然后您需要激活正确的目录,或者将其所在的目录添加到您的路径中。
如果当您重新启动 shell 时错误的文件仍然存在,那么您的 shell 初始化文件中一定有某些内容(也许.bashrc
假设您使用的是 bash)将其放在那里,或者正确的文件从未被激活。