Mac OSでpyenvを使用してPythonバージョンを管理

5017 ワード

問題の由来
開発中に複数のバージョンが同時に導入される場合があります.
  • Mac OSに付属のPythonバージョンは2.x、自分で開発するにはPython 3が必要です.x
  • システムが持参するのは2.6である.x,開発環境は2.7.1x
  • Macマシンシステム保護のため、デフォルトのPythonではPIPのパッケージをアップグレードできません.新しいPython環境を構築する必要があります.
  • この場合、システムに複数のバージョンのPythonをインストールする必要があるが、システムが所有するPythonに影響を与えることはできない.すなわち、Pythonのマルチバージョン共存を実現する必要がある.pyenvは、このようなPythonバージョンマネージャです.

  • Pyenv pyenvはPythonバージョン管理ツールです.pyenvは、グローバルなPythonバージョンを変更したり、複数のバージョンのPythonをインストールしたり、ディレクトリレベルのPythonバージョンを設定したり、vitual python enviromentsを作成したり管理したりすることができます.すべての設定はユーザーレベルの操作であり、sudoコマンドは必要ありません.pyenvは主にPythonのバージョンを管理するために使用され、例えば1つのプロジェクトにPython 2が必要である.x、一つのプロジェクトにPython 3が必要です.x.virtualenvは主にPythonパッケージの依存を管理するために使用されます.プロジェクトによって依存するパッケージのバージョンが異なる場合は、仮想環境を使用する必要があります.pyenv環境変数をシステム修正することによってPythonの異なるバージョンの切り替えを実現する.一方vitualenvはPythonパッケージを1つのディレクトリにインストールすることでPython仮想パッケージ環境として、ディレクトリを切り替えることで異なるパッケージ環境間の切り替えを実現します.pyenvの素晴らしい点は、異なるPATHを異なるshellにインプラントするという高結合の動作方式を使用するのではなく、異なるshellを単純にPATHにインプラントするという高結合の動作方式を使用することである.簡単にPATHの一番前にシムパス(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/binを挿入しました.Python実行可能なすべてのファイルの検索は、まずこのshimsパスによって切り取られ、後方のシステムパスを失効させます.
    インストール前
    異なるシステムはCommon build problemsを参照し、必要なツールをインストールしてください.
    pyenvインストール
    homebrewのインストール
    どのようにhomebrewをインストールしますか?
    pyenvのインストール
    homebrewでのインストール
    Macの下にhomebrewを取り付けた後、homebrewを使用してpyenvを取り付けます.
    brew update
    brew install pyenv
    brew upgrade pyenv #        pyenv
    

    インストールが成功した後、自動補完をオンにするには、.bashrcまたは.bash_profileに3行を追加する必要があります.
    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    

    自動インストールpyenvは自動インストールツールを提供し、コマンドインストールを実行すればよい.
    curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
    

    システムを保証する必要があります.そうしないと、gitをインストールする必要があります.
    手動インストール
    手動でインストールする方法で、gitをインストールしたいディレクトリにチェックアウトすることもできます.
    cd ~
    git clone git://github.com/yyuu/pyenv.git .pyenv
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc
    source ~/.bashrc
    

    環境変数を追加します.pyenvは、PYENV_ROOTによって検出されたルートディレクトリを指し、pyenv$PATHを追加して、$PYENV_ROOT/binコマンドにアクセスするパスを提供する.
    ここでshellプロファイルpyenvは、異なるLinuxによって変更する必要がある、Zshを使用する場合は対応する構成~/が必要である.zshrc (~/.bash_profile)を使用した後にpyenvを使用してインストールされたサードパーティ製モジュールは、現在使用されているpythonバージョンに自動的にインストールされ、システムモジュールと競合することはありません.pipを使用してモジュールをインストールした後、有効でない場合は、pipを使用してスペーサパスを更新してください.
    pyenv共通コマンドpyenv rehashを使用して、すべてのpyenvコマンドを表示します.
    Pythonのインストール済みバージョンの表示
  • pyenv commands
  • ferdinand@ferdinanddeMacBook-Pro  ~  pyenv versions
      system
    * 3.6.3 (set by /Users/ferdinand/.python-version)
    

    *番号付きは、現在のパスで使用されているPythonバージョンです.
    インストール可能なPythonバージョンの表示
  • pyenv versions
  • erdinand@ferdinanddeMacBook-Pro  ~  pyenv install -l
    Available versions:
      2.1.3
      2.2.3
      2.3.7
      2.4
      2.4.1
      2.4.2
      2.4.3
      2.4.4
      2.4.5
      2.4.6
      2.5
      2.5.1
      2.5.2
      2.5.3
      2.5.4
      2.5.5
      2.5.6
      2.6.6
      2.6.7
      2.6.8
      2.6.9
      2.7-dev
      2.7
      2.7.1
      2.7.2
      2.7.3
      …………
    

    Pythonのインストール
    pyenv install  # version    
    

    Pythonバージョン管理
    pyenv global   #     python       ,      Python   ,         ~/.pyenv/version      。
    pyenv local    #        python       ,   Python     ,               .python-version      。          Python        global  。
    pyenv shell    #     shell     python       ,     shell   Python   ,       shell   PYENV_VERSION        。          local   global    。–unset            shell      。
    

    pyenvを使用してPythonバージョンを切り替えた後、pyenv install -lまたはwhich pythonで有効かどうかを確認できます.
    ferdinand@ferdinanddeMacBook-Pro  ~  which python
    /Users/ferdinand/.pyenv/shims/python
    ferdinand@ferdinanddeMacBook-Pro  ~  python --version
    Python 3.6.3
    
    
  • Pythonバージョンの優先度
  • shell > local > global
    pyenvは、ルートディレクトリまで現在のディレクトリからpython --versionファイルを上へ逐次検索し、見つからない場合はglobalバージョンを使用します.
    pyenv rehash  #       (               shims, :~/.pyenv/versions/*/bin/*,  ,       Python             (  pip)  ,          )
    

    Pythonアンインストール
    pyenv isntall  #        Python
    pyenv uninstall  #       Python