1

最近、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.

4

2 に答える 2

2

実行可能ファイルは、ハッシュで行われたかのように、シェルによって記憶されます。

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シェルを再起動せずに実行すると、それが修正されます。

更新: 実際には、シェルはハッシュを実行するだけでなく、それを記憶しています。おそらく、それを実行しようとしたり、 のようなことをしたりするとtype -P prog、シェルはすでにそれを覚えているでしょう。これは、テストで発生したエラーであり、実行しませんでしたw:

bash: /usr/local/bin/w: No such file or directory

そしてそれhash -rを修正しました。

于 2013-09-10T18:30:27.590 に答える
0

どこかbashの以前の場所をキャッシュしているようです。python3.3シェルを閉じて、もう一度ログインしてみてください。これにより、キャッシュが消去bashされ、適切な場所を取得できるようになりpython3.3ます。

于 2013-09-10T18:10:14.213 に答える