我最近安装了python3.3.2的/ usr / local副本,当确信它是可靠的时,重新安装在/ usr下并删除了/ usr / local版本。当我将可执行文件作为/usr/bin/python3.3运行时,一切都很好但是当我将它作为'python3.3'运行时,我收到消息:
> python3.3
bash: /usr/local/bin/python3.3: No such file or directory
'which'找到/usr/bin/python3.3。我做了一个'set -u'和'set echo'试图弄清楚发生了什么但没有成功。 bash如何进入这里?
谢谢。 史蒂夫S。
答案 0 :(得分:2)
shell仍然会记住您的可执行文件,就像使用hash一样:
hash: hash [-lr] [-p pathname] [-dt] [name ...]
Remember or display program locations.
Determine and remember the full pathname of each command NAME. If
no arguments are given, information about remembered commands is displayed.
-r forget all remembered locations
运行hash -r
而不需要重新启动shell会解决这个问题。
更新:实际上shell也会记住它不仅仅是通过运行哈希。也许当你尝试执行它或做type -P prog
之类的事情时,shell会记住它。这是我在测试中遇到的错误,我没有运行w
:
bash: /usr/local/bin/w: No such file or directory
而且hash -r
修正了它。
答案 1 :(得分:0)
似乎bash
正在某处缓存python3.3
的先前位置。尝试关闭您的shell并再次登录 - 这应该擦除缓存并允许bash
选择python3.3
的正确位置。