PATHでプログラムが見つからない理由

PATHでプログラムが見つからない理由

ipythonmacOSに内部的にvirtualenvをインストールしました。私のPATH環境変数は最初にvirtualenvパスも表示します。whichまた、コマンドは、コマンドがipython正しい場所にあることを示します。

問題は、実行時にipythonシェルが奇妙な場所で以前のインストールを検出することです。ここにいくつかの例があります。

(csv_import) $ ipython
-bash: /usr/local/bin/ipython: /usr/local/opt/python3/bin/python3.6: bad interpreter: No such file or directory
(csv_import) $ 
(csv_import) $ which ipython
/Users/zeinep/.virtualenvs/csv_import/bin/ipython
(csv_import) $ 
(csv_import) $ echo $PATH
/Users/zeinep/.virtualenvs/csv_import/bin:/Users/zeinep/.avn/bin:/Users/zeinep/.nvm/versions/node/v10.14.1/bin:/usr/local/lib/python3.6/bin:/Users/zeinep/Library/Python/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
(csv_import) $ 
(csv_import) $ 
(csv_import) $ /Users/zeinep/.virtualenvs/csv_import/bin/ipython
Python 3.6.5 (default, Jun 17 2018, 12:13:06) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:         

ご覧のとおり、フルパスを使用すると機能します。そうでなければ、/usr/local/bin/ipython私が見たものからvirtualenvでシェルが見つかったとしても、以前のインストールが実行されます。

答え1

/Users/zeinep/.virtualenvs/csv_import/binbashが保存$PATHした後(ハッシュされた)バージョンを追加したようです/usr/local/bin。修正はこんなに簡単ですhash -d ipython

関連情報