128

私のlinuxboxには2つのバージョンのpythonがあります:

$python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 


$ /usr/local/bin/python2.7
Python 2.7.3 (default, Oct  8 2013, 15:53:09) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

$ which python
/usr/bin/python
$ ls -al /usr/bin/python
-rwxr-xr-x. 2 root root 4864 Jul 10 22:49 /usr/bin/python

2.7 をデフォルト バージョンにして、入力すると 2.7 になるようにするにはどうすればよいpythonですか?

4

7 に答える 7

178

おそらく、実際にはデフォルトの Python を変更したくないでしょう。

お使いのディストリビューションは に標準システムの Python をインストールしており/usr/bin、これに依存するスクリプトが存在し、 によって選択される場合があり#! /usr/bin/env pythonます。通常、2.7 で Python 2.6 スクリプトを実行することで問題を解決できますが、危険を冒したいと思いますか?

その上、モンキーを/usr/bin使用すると、パッケージ マネージャーのパッケージ管理機能が損なわれる可能性があります。また、ディレクトリの順序を変更するとPATH、Python 以外の多くのことに影響します。/usr/local/bin(実際には、 よりも前にある方が一般的/usr/binであり、それが実際に必要な場合もありますが、逆の場合は、おそらくそれには十分な理由があります。)

ただし、入力時にシステムが 2.7 を実行するようにデフォルトの Python を変更する必要はありませんpython


まず、シェル エイリアスを設定できます。

alias python=/usr/local/bin/python2.7

プロンプトでそれを入力する~/.bashrcか、変更を永続化したい場合はそれを入力します。入力pythonすると、選択した2.7が実行されますが、システム上のプログラムがスクリプトを実行しようとすると/usr/bin/env python、標準の2.6が実行されます。


または、2.7 から仮想環境を作成し(またはプロジェクトごとに別の venv を作成し)、venv 内で作業を行います。

于 2013-10-08T19:17:34.083 に答える
20

環境変数に、リストの より前に追加/usr/local/binします。PATH/usr/bin

通常、これはシェルの rc ファイルで行われます。たとえば、bash の場合は、次のように記述します.bashrc

export PATH="/usr/local/bin:$PATH"

これにより、シェルは最初にpythoninを検索してから、 in を検索/usr/local/bin/usr/binます。

(もちろん、これは指し示す必要があることも意味します。まだ/usr/local/bin/python指しpython2.7ていない場合は、シンボリックリンクする必要があります。)

于 2013-10-08T19:08:19.587 に答える
-8

2.7 バージョンは手動でインストールしたと思いますが、2.6 はパッケージからのものですか?

簡単な答えは、python パッケージをアンインストールすることです。

より複雑なのは、/usr/local に手動でインストールしないことです。2.7 バージョンのパッケージをビルドしてからアップグレードします。

パッケージの取り扱いは、使用するディストリビューションによって異なります。

于 2013-10-08T19:08:31.687 に答える