サーバーにPython 2.7をインストールしたところ、事前に2.4がインストールされていました。
新しいバージョンをビルドした後も、パスはまだ古いバージョンの python を指しています。これを変更する簡単な方法をご存知ですか。
sudo 権限も root アクセス権もありません。
サーバーにPython 2.7をインストールしたところ、事前に2.4がインストールされていました。
新しいバージョンをビルドした後も、パスはまだ古いバージョンの python を指しています。これを変更する簡単な方法をご存知ですか。
sudo 権限も root アクセス権もありません。
あなたはサーバー上にいてルート権限を持っていないため、 virtualenvを使用するのが最善の選択です。
たとえば、次のように Python 2.7 をビルドします。
$ ./configure --prefix=~/mydir
$ make
$ make install
virtualen.py
ファイルをダウンロードして実行します。
$ ~/mydir/bin/python virtualenv.py my_environment
my_environment
これにより、ディレクトリ内に隔離された Python 2.7 環境が作成されます。
それをアクティブにするには、実行source my_environment/bin/activate
してください。python
これで、実行可能ファイルは Python 2.7 になります。さらに、pip
インストール済みであるため、追加のライブラリを環境に簡単にインストールできます。
まず、問題のあるパスを含むディレクティブ(または、正確に参照しているものによっては)がないか~/.profile
、シェルの構成ファイル(~/.bashrc
bashなど)を確認する必要があります。ある場合は、変更して再ログインしてください。それはあなたの問題を解決するはずです。export $PATH=
PYTHONPATH
そうでない場合は、管理者に相談してください。それでも問題が解決しない場合は、次のようにすることができます。シェルで、次のコマンドを実行します(実際に必要なものに応じて、で置き換えることができます)PATH
。PYTHONPATH
echo $PATH
出力をコピーして、必要に応じて変更します。次に、別のシェルを開いて実行します(置換を覚えておいてください)。
export PATH="whatever you copied before"
すべてが正常であることを確認します(つまり、必要なすべてのアプリケーションを引き続き呼び出すことができ、それに応じてパスが調整されていることを確認します)。その場合は、コマンドをに追加してください~/.profile
。
この回答は、環境がLinux、Unix、または同様のものであることを前提としています。
問題がPATH
環境変数が正しいバイナリを指していないことである場合は、次のように変更します。たとえば、プロファイルファイルの1つから実行しPATH
て、特定のディレクトリを含めるようにします。必ずそのディレクトリを作成し、正しいバージョンのPythonを指すという名前のシンボリックリンクが含まれていることを確認してください。~/bin
PATH=${HOME}/bin:${PATH}
~/.profile
python
これは、パスがハードコードされているスクリプト(たとえば、で始まる)には役立ちません#!/usr/bin/python
。これらをコマンドラインから直接呼び出す場合は、python
代わりにインタプリタ(つまり)を呼び出すだけで、スクリプトの名前を引数として渡すことができますpython /path/to/script.py
。代わりに、必要なPythonバージョンを使用することもできますpython2.7 /path/to/script.py
。
このシーケンス全体を~/bin
ディレクトリ内のスクリプトに変換することもできます。たとえば~/bin/foo
、次のコンテンツが含まれています。
#!/bin/sh
exec ${HOME}/bin/python2.7 /usr/bin/foo
chmod -x ~/bin/foo
ファイルを忘れないでください。PATH
システムにインストールされているデフォルトバージョンの前にある実行可能シェルスクリプトを取得します。次に、スクリプトは、非常に特殊なインタープリターを使用して、そのデフォルトバージョンを呼び出します。これで、短い名前を入力するだけで、目的のPythonバージョンで公式スクリプトを実行できます。
他のスクリプトが、絶対パス名を使用して特定のPythonスクリプトを実行しようとする場合があります。その場合、の変更は役に立ちませんPATH
。問題のスクリプトの最初の行を変更して、たとえばを読む必要があり#!/usr/bin/env python
ます。これらのスクリプトを制御できない場合は、問題が発生しており、システムを微調整して通常は実行できないことを実行するために、より高度なハックが必要になります。LD_PRELOAD
頭に浮かぶ。