1. ホーム
  2. python

[解決済み] Linuxで2つのバージョンのPythonを使用する方法。

2022-07-18 08:05:23

質問

私の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をデフォルトのバージョンにすることができますか? python と入力すると2.7になるようにするにはどうしたらよいでしょうか?

どのように解決するのですか?

おそらく、実際にはデフォルトの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 が実行されます。


別の方法として、単に 仮想環境 を作成し (あるいは異なるプロジェクトのために別々の venv を作成し)、venv の中で作業を行います。