web-dev-qa-db-ja.com

`どのpython`がpython欲しいのですが、` python`は間違ったバージョンを実行します

ポートが提供するpython24を使用したいので、インストールしました。python_select -sは、必要なバージョンが実際に選択されていることを示しています。 which pythonを実行すると/opt/local/bin/pythonが得られ、/opt/local/bin/pythonを実行すると必要なバージョンが得られます。ただし、シェルからpythonを実行すると、代わりに/usr/bin/pythonバージョンが取得されます。 pythonエイリアスがありません。

簡単に言うと、状況は次のとおりです。

  1. パスは賢明に設定されていると思いますが、which pythonはこれを確認しているようです。
  2. aliasは1つのエントリのみを返しますが、これはこれとは関係ありません。

それでも、bashシェルからpythonを実行すると、間違ったPythonが表示されます。

私はちょっと困惑しています!私は何を見落としていますか?

7
tramdas

hash -d pythonをお試しください。これにより、bashはpython実行可能ファイルを最後に見た場所を忘れるようになります。

おそらく、何かを更新したばかりで、bashインスタンスに実行可能ファイルに関する古い情報が含まれています。 exec bashをお試しください。

私が:

  1. qqq/usr/bin/qqq)をbashから開始します。
  2. qqq/usr/local/bin/に追加します。
  3. 同じqqqbashをもう一度開始してみてください。

すでに検索済みのバージョン(/usr/bin/qqq)を使用します

ただし、bashを再起動すると、qqqが再度検索され、/usr/local/bin/qqqが取得されます。

3
Vi.

もう1つの可能性は、スクリプト自体が、スクリプトの最初の行で実行するPython実行可能ファイルを指定していることです。たとえば、私のシステムにはPython 2.6および2.7がインストールされています、および最初の行が次のような場合:

#!/usr/bin/Python-2.6.8/bin/python

次に、2.7がシステムのデフォルトですが、Python 2.6になります。

デフォルトを指定する通常の方法は次のとおりです。

#!/usr/bin/env python
0
GreenMatt