pythonコマンドが間違ったバージョンのPythonインタプリタを起動する

pythonコマンドが間違ったバージョンのPythonインタプリタを起動する

私はMac OS Xバージョン10.13.1を使用しており、ちょうどアナコンダをインストールしました。コマンドを使用して仮想環境を作成しました。

conda create -n py3 python=3

その後、次のコマンドを使用してPythonインタプリタを起動しました。

python

驚いたことに、/usr/binにプリインストールされたPython 2.7がPython 3.6の代わりに登場しました。何が間違っているかを確認するためにコマンドを実行しました。

which python

その結果は私をさらに驚かせました。私は次のような結果を得ました。

/Users/karlstroetmann/anaconda2/envs/py3/bin/python

私が命令を呼ぶとき

/Users/karldrstroetmann/anaconda2/envs/py3/bin/python

私はPython 3.6.3を手に入れました。しかし、なぜinputを介してこのバージョンを呼び出すことができないのかわかりませんpython。私がここで何を見逃しているのでしょうか?どんなアドバイスも本当にありがとうございます。

答え1

pythonコマンドはおそらくハッシュそしてキャッシュをクリアする必要があります。実際に実行中の実行可能ファイルを表示するには、次のコマンドを使用できますtype。たとえば、次のようになります。

type -a python

このwhichコマンドとは異なり、このtypeコマンドはハッシュ、エイリアス、およびシェル機能を認識します。

シェルが実行するプログラムを決定するために使用するコマンドの詳細については、次の記事を参照してください。

あるいは、コマンドhash自体を使用して、指定されたコマンドがハッシュされたかどうかを確認することもできます。たとえば、次のようになります。

hash -t python

hash引数なしで実行して、すべてのハッシュコマンドを一覧表示することもできます。例:

hash

同様に、このaliasコマンドを使用して、指定されたコマンドがエイリアスであることを確認できます。たとえば、次のようになります。

alias python

すべてのアクティブなエイリアスを一覧表示することもできます。

alias

キャッシュされたPythonプログラムを消去するには、次のコマンドを使用できます。

hash -d python

あるいは、すべての内容を一度に消去することもできます。

hash -r

単一のエイリアスを消去するには、次のunaliasコマンドを使用できます。たとえば、次のようになります。

unalias python

あるいは、すべてのエイリアスをすぐに消去することもできます。

unalias -a

答え2

私は私の問題を解決しました。それは愚かな間違いでした。私の.bashrcにpythonのエイリアスがありました。このエイリアスを忘れたため、問題が発生しました。

答え3

アナコンダ(デフォルト)環境で仮想環境を呼び出すと、この現象が発生する可能性があります。conda deactivate出口のためみんなアナコンダ環境を終了し、conda activate <myenv>環境に戻ります。

とにかくこれは私にとって効果的です。このStackExchangeスレッドで見つかりました。

関連情報