linuxでpython 2とpython 3を切り替えます


このブログはLinuxユーザー向けで、Linux下(Ubuntu)でテストに合格しました.Winユーザーですか.
0 x 00なぜ2バージョンのPythonが必要なのか
Python 2とPython 3の互換性がないのは、Pythonに触れた開発者一人一人が知っていることで、Python 3は未来とはいえ、Python 2の開発を採用するプロジェクトが多い.Linuxの多くのリリースバージョン(Ubuntuなど)にはPython 2が付属しています.7ですが、Python 3プロジェクトを開発する準備ができたら、どうすればいいですか?
ではPython 3も降りましょう.はい、Linuxの下では確かに2つを一緒に入れることができますが、問題は2つのバージョンのPythonをどのように切り替えるかです.
0 x 01エイリアスの変更
まずデフォルトのPythonバージョンを見てみましょう
$ python --version
Python 2.7.6

別名を変更します
$ alias python='/usr/bin/python3'
$ python --version
Python 3.4.3  #       
/usr/bin/python3この経路はどうやって見つけたのですか?
一般的に、ソフトウェアのバイナリファイルは、/usr/binまたは/usr/local/bin(この優先度が高い)で見つけることができます.もちろんDebian系のLinuxなら、そう探してもいいです(Python 3がインストールされていることを前提にしています):
$ dpkg -L python3

上のエイリアスの変更は一時的なもので、ウィンドウを再開すると構成がなくなります.各ウィンドウにこの別名を使用する場合は、~/.bashrcを編集し(他のshellであれば、zshが~/.zshrcのようなこのファイルではありません)、alias構成をファイルに書き込むことができます.
エイリアスを変更する利点は十分簡単ですが、切り替えが柔軟ではありません.
0 x 02リンクファイル/usr/binにおいて、Python 3へのリンクファイルが確立される.
$ ln -s python /usr/bin/python3
$ python --version
Python 3.4.3

別名を修正するのと同じように、修正が柔軟ではありません.
0 x 03 update-alternatives切替バージョンを採用
update-alternativesはDebianが提供するツール(Debian系でなければ見なくてもいい)であり、原理は上記の方法に似ており、リンクによる方法でもあるが、その切り替えの過程は非常に便利である.
まずupdate-alternativesのヘルプ情報を見てみましょう.
$ update-alternatives --help
  :update-alternatives [<  > ...] <  >

  :
  --install <  > <  > <  > <   >
    [--slave <  > <  > <  >] ...
                                      。
  --remove <  > <  >     <  >        <  >  。
  --remove-all <  >               <  >    。
  --auto <  >              <  >            。
  --display <  >              <  >       。
  --query <  >                  --display <  >.
  --list <  >               <  >             。
  --get-selections                         。
  --set-selections                       。
  --config <  >             <  >         ,      
                              ,       。
  --set <  > <  >        <  >     <  >     。
  --all                               --config   。

<  >     /etc/alternatives/<  >      。
    (  /usr/bin/pager)
<  >            。
    (  pager)
<  >            。
    (  /usr/bin/less)
<   >      ,      ,         ,        。

  :
  --altdir <  >                 。
  --admindir <  >           statoverride      。
  --log <  >                   。
  --force                          ,       。
  --skip-auto                                
                           (   --config   )
  --verbose                      。
  --quiet                      ,         。       。
  --help                          。
  --version                      。

3つのパラメータを知るだけでいいです--install :一連の候補を確立する--config :グループ内のオプションを設定し、どちらのを使用するかを選択します.--remove :オプションを削除まず、Pythonに関する選択肢があるかどうかを見てみましょう.
$ update-alternatives --display python
update-alternatives:   :   python     

まずpythonのグループを作成し、Python 2とPython 3のオプションを追加します.
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2 #   Python2   ,    2
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 #  Python3   ,    1

ここの/usr/bin/pythonリンクファイルは、2つのオプションが同じでなければなりません.これにより、このリンクファイルは2つの異なるオプションを選択してリンクすることができます.
このとき、/usr/bin/pythonというファイルを表示すると、/etc/alternatives/pythonにリンクされていることがわかります.
lrwxrwxrwx 1 root root        24  6  19 18:39 python -> /etc/alternatives/python

そしてバージョンを見てみましょう
$ python --version
Python 2.7.6

なぜPython 2なのか、構成を見てみましょう
$ sudo update-alternatives --config python
  2           python (   /usr/bin/python)。

                                  
------------------------------------------------------------
* 0            /usr/bin/python2.7   2             
  1            /usr/bin/python2.7   2             
  2            /usr/bin/python3.4   1             
      [*]     ,         :

デフォルトでオートモードが選択されているため、Python 2の優先度がPython 3より高い場合は2を入力するだけでPython 3を使用できます.
オプションを削除するには、次の手順に従います.
$ sudo update-alternatives --remove python /usr/bin/python2.7

update-alternativesはDebian系Liunxにのみ適用されます.
0 x 04 virtualenvwrapper切替バージョン
VirtualenvwrapperはPythonの仮想環境を管理するツールであり、異なるプロジェクトのために独立した環境を構築することができ、各プロジェクトに独自の依存をインストールすることができ、異なる仮想環境に異なるバージョンのPythonが存在することをサポートします.
まずvirtualenvwrapperをインストールし、aptインストールまたはpipインストールを選択できます.
aptインストール
$ sudo apt-get install virtualenvwrapper

pipインストール
$ sudo pip install virtualenvwrapper

Python 2を使用してプロジェクトを開発する必要がある場合は、Python 2の仮想環境を構築します.
$ mkvirtualenv -p /usr/bin/python2 env27

Python 3の開発が必要な場合:
$ mkvirtualenv -p /usr/bin/python3.4 env34

その後、さまざまな仮想環境をいつでも切り替えることができます.
$ workon env27  #   Python2  
$ workon env34  #   Python3  

さらに、仮想環境に入ると同時にプロジェクトディレクトリに切り替えることができます.$VIRTUAL_ENV/bin/postactivateというファイルを編集するだけでいいです.
$ vim $VIRTUAL_ENV/bin/postactivate  #              

ファイルにディレクトリの切り替えコマンドを追加するには、次の手順に従います.
cd  /path/to/your/project

0 x 05まとめ
前の2つの方法はお勧めしません.
update-alternatives切替バージョンはDebian系のLinuxにのみ適用されます.
virtualenvwrapperを使用して仮想環境とバージョンを管理することをお勧めします.
また、本明細書で説明する異なるバージョンのソフトウェアを切り替える方法は、virtualenvwrapperに加えて、Java(open-jdkおよびoracle-jdk)などの前の3つの方法が他のソフトウェアに適用される.