我经常遇到这样的情况:我在 Python virtualenv 中工作,并且我想运行可执行的 Python 程序(例如 bpython)。我运行它,忘记了我还没有将它安装在我的 virtualenv 中,所以它不会做正确的事情。然后,我在 virtualenv 中安装 bpython,但如果我尝试运行新版本,bash 会“记住”旧版本并调用它。
更具体地说:
(venv)$ bpython
(whoops, system-level bpython!)
(venv)$ which bpython
/usr/local/bin/bpython
(venv)$ type bpython
bpython is hashed (/usr/local/bin/bpython)
(venv)$ pip install bpython
(venv)$ which bpython
/Users/lorin/.virtualenvs/venv/bin/bpython
(venv)$ type bpython
bpython is hashed (/usr/local/bin/bpython)
如何告诉 bash 提示符“忘记”bpython 的位置是/usr/local/bin/bpython
该会话的位置?
答案1
你可以告诉 bash 重新散列:
hash -r
答案2
重置PATH
变量即可:
export PATH=$PATH