更新。
残念ながらエイリアスの変更は機能しません。エイリアスをエイリアスpython = '/ usr/bin/python2.7'に変更しましたが、シェルスクリプトは2.4.3でpythonスクリプトを実行します。
Muru-PYTHONPATHを使用してpythonパスにリダイレクトしています。しかし、あなたが言ったように、これは正しくないかもしれません。特定のpython実行可能ファイルに指示するために使用できるPYTHONPATHのバージョンはありますか?
シェルスクリプトは、要求されたとおりです。
cd ../../../..
export BREVE_CLASS_PATH=/home/user/breve_2.7.2/lib/classes
export PYTHONPATH=/usr/bin/python2.7
cd /home/user/breve_2.7.2
./bin/breve /home/user/breve_2.7.2/demos/Getting-Started/RandomWalker_version.py
特定のプログラムでpythonスクリプトを実行するシェルスクリプトを実行しています。
私の問題は、pythonスクリプトがpython 2.4で起動されているのに対し、python 2.7で実行する必要があることです。シェルスクリプトでは、使用するpython2.7を強制しようとする次の行を追加しました。
export PYTHONPATH=/usr/bin/python2.7
ただし、pythonスクリプトが使用しているバージョンを出力すると、python 2.4.3が表示されます。私はこれについて正しい方法を行っていますか?
どうすればいいですか?
複数のpythonバージョンがインストールされており、どのpythonをデフォルトとして使用するかを決定するため、デフォルトコマンドを決定するシンボリックリンクを保持するupdate-alternatives
コマンドを使用する必要があります。
まず最初にこれを実行します:
update-alternatives --list python
結果が次の場合:
update-alternatives: error: no alternatives for python
次に、使用しているさまざまなpythonバージョンのupdate-alternatives
から--install
の代替を使用する必要があります(--list
オプションで代替がリストされた場合は、--config
オプション(後述)。 --install
オプションのパラメーターはgroup、target、priorityであり、優先順位の数値が大きいほど優先順位が高くなり、groupは代替のグループが与えられるコマンドのpathを意味します。
update-alternatives --install /usr/bin/python python /usr/bin/python2.4 1
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
この後、python 2.7がデフォルトのpythonになります。優先順位番号が大きくなり、両方のpythonバージョンが代替としてインストールされます(インストールした場合はそれ以上)他のバージョンも)。 python 2.7がすべてのデフォルトのpythonになったことに留意してください。
--listパラメーターを使用して、グループのインストール済みの代替を再度リストできるようになりました。
update-alternatives --list python
/usr/bin/python2.4
/usr/bin/python2.7
そして、次の方法で選択肢を切り替えることができます。
update-alternatives --config python
選択番号を入力すると、pythonの目的のバージョンがデフォルトのpythonとして使用されるように設定されます。
Update-alternativesの詳細については、manページを使用してください。
man update-alternatives
どうしてやらないの?
python /home/user/breve_2.7.2/demos/Getting-Started/RandomWalker_version.py
最後の行に。これで解決できます(シバンが正しい場合)。