ウェブサイト検索

Pyenv - 特定のプロジェクトに複数の Python バージョンをインストールする


Linux システム上で複数のバージョンのPython を管理することは、特に初心者にとっては簡単な作業ではありません。同じサーバー上で異なる Python バージョンを使用して複数のプロジェクトを開発して実行したい場合、状況がさらに悪化することがあります。ただし、pyenv を使用する場合はこの限りではありません。

こちらもお読みください: Linux に最新の Python 3.6 バージョンをインストールする方法

ピエンフとは何ですか?

Pyenv は、Linux システム上で複数の Python バージョンを管理するための、シンプルで強力なクロスプラットフォーム ツールです。

  • ユーザーごとにグローバル Python バージョンを切り替えます。
  • プロジェクトごとにローカルの Python バージョンを設定します。
  • anaconda または virtualenv によって作成された仮想環境の管理。
  • 環境変数を使用して Python バージョンをオーバーライドします。
  • Python の複数のバージョンなどからコマンドを検索します。

pyenvはどのように機能しますか?

通常、アプリケーション内で使用するバージョンを明示的に指定しない限り、Python の単一のデフォルト バージョンがすべてのアプリケーションの実行に使用されます。ただし、pyenv は、複数のバージョンがインストールされている場合に、shims (軽量の実行可能ファイル) を使用して、使用したい正しい Python バージョンにコマンドを渡すという単純な概念を実装しています。

これらのシムは、pyenv によってパスの前のディレクトリに挿入されます。したがって、Python コマンドを実行すると、適切なshim によってインターセプトされ、pyenv に渡され、アプリケーションによって指定された Python バージョンが確立され、渡されます。コマンドを適切な Python インストールに含めます。これはpyenv の動作の概要です。

この記事では、Linux に最新バージョンのpyenv をインストールする方法を説明します。また、上記の最初の 3 つの使用例も示します。

Linux に Pyenv をインストールする方法

1. まず、次のコマンドを使用して、ソースからさまざまな Python バージョンをインストールするために必要なパッケージをすべて、それぞれの Linux ディストリビューションにインストールします。

------------ On Debian/Ubuntu/Linux Mint ------------ 
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. 次に、最新の pyenv ソース ツリーを Github リポジトリから取得し、次のコマンドを使用して $HOME/.pyenv パスにインストールします。

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. 次に、pyenv をインストールしたパスを指すように環境変数 PYENV_ROOT を設定し、エクスポートする必要があります。次に、$PYENV_ROOT/binPATH に追加して、他のシステム コマンドと同様に pyenv コマンドライン ユーティリティを実行します。

また、pyenv init をシェルに追加してシムオートコンプリートを有効にする必要もあります。図に示すように、これらすべての作業を $HOME/.bashrc bash 起動ファイルで実行します。

vim $HOME/.bashrc 

次の行をコピーして、このファイルの最後に貼り付けます。

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. 上記の変更を行ったら、$HOME/.bashrc ファイルをソースするか、示されているようにシェルを再起動することができます。

source $HOME/.bashrc
OR
exec "$SHELL"

Linux に複数の Python バージョンをインストールする方法

5. この時点で、pyenv の使用を開始する準備ができています。 Python バージョンをインストールする前に、このコマンドを使用して利用可能なすべてのバージョンを表示できます。


pyenv install -l

6. たとえば、pyenv 経由で複数の Python バージョンをインストールできるようになりました。

pyenv install 3.6.4
pyenv install 3.6.5

7. pyenv で利用可能なすべての Python バージョンを一覧表示するには、次のコマンドを実行します。これにより、pyenv 自体を介してインストールされたバージョンのみが表示されます。

pyenv versions

8. 次のコマンドを使用して Python のグローバル バージョンを確認できます。この時点では、デフォルト バージョンは pyenv ではなく、システムによって設定されたバージョンになっているはずです。

pyenv global

pyenv コマンドを使用して、グローバル Python バージョンを設定できます。

pyenv global 3.6.5
pyenv global

9. ローカル Python バージョンをプロジェクトごとに設定できるようになりました。たとえば、$HOME/python_projects/test にプロジェクトがある場合は、次のように設定できます。次のコマンドを使用して、Python バージョンをダウンロードします。

cd python_projects/test
pyenv local 3.6.5
pyenv version		#view local python version for a specific project 
OR
pyenv versions

10. Pyenv は、Python のvirtualenvs および conda 環境の管理を自動化する pyenv-virtualenv プラグインを介して仮想環境を管理します。 Linux およびその他の UNIX 系システム上で。

次のコマンドを使用してこのプラグインをインストールすることから始めることができます。

git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc

11. 次に、次のように project1 というプロジェクトの下に venv_project1 というテスト仮想環境を作成します。

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. すべての Python バージョンをリストすると、スクリーンショットに示すように、仮想環境とそのローカル Python バージョンもリストされるはずです。

pyenv versions

13. virtualenv (venv_project1 など) をアクティブにするには、次のコマンドを入力します。

pyenv activate venv_project1

: 最新バージョンの pyenv-virtualenv プラグインを初めて使用すると、以下のメッセージが表示される場合があります。

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

他のpyenv configsを追加した$HOME/.bashrcファイルに行export PYENV_VIRTUALENV_DISABLE_PROMPT=1を追加し、シミュレートするファイルをソースします。強調される行動。

14. アクティブ化された virtualenv を非アクティブ化するには、次のコマンドを実行します。

pyenv deactivate

詳細については、次のコマンドを使用してすべての pyenv コマンドを一覧表示できます。

pyenv commands

詳細については、pyenv Github リポジトリにアクセスしてください: https://github.com/pyenv/pyenv

こちらもお読みください: 複数の Web サイトに複数の PHP バージョンをインストールする方法

pyenv の使用は非常に簡単です。このガイドでは、インストール方法を示し、Linux システム上で複数の Python バージョンを管理するためのいくつかの使用例を示しました。このツールに関する質問や意見を共有するには、以下のフィードバック フォームを使用してください。