私がする時
which pip3
私は得る
/usr/local/bin/pip3
しかし、pip3
を実行しようとすると、次のようなエラーが発生します。
bash: /usr/bin/pip3: No such file or directory
これは、最近そのファイルを削除したためです。現在、which
コマンドはpip3
にある別のバージョンの/usr/local/bin
を指していますが、シェルは依然として間違ったパスを記憶しています。そのパスを忘れるにはどうすればよいですか?
which
マニュアルによると
which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in
a strictly POSIX-conformant Shell. It does this by searching the PATH for executable files matching the names of the arguments. It does not follow
symbolic links.
/usr/local/bin
と/usr/bin
の両方がPATH
変数にあり、/usr/local/bin/pip3
はシンボリックリンクではなく、実行可能ファイルです。では、なぜ実行されないのでしょうか?
bash
でコマンドを実行すると、その実行可能ファイルの場所が記憶されるため、毎回PATH
を検索する必要がありません。したがって、実行可能ファイルを実行して場所を変更しても、bash
は引き続き古い場所を使用しようとします。古い場所を示すhash -t pip3
でこれを確認できるはずです。
hash -d pip3
を実行すると、bashに古い場所を忘れるように指示し、次に試すときに新しい場所を見つける必要があります。