Pythonでversion切り替え(pyenvとvirtual envまとめ)

pythonWeb開発

みなさん、こんにちは!

自分のブログ記事の中で、pyenvとvirtual envを当たり前のように使っていて。

pythonのversion&実行環境の切り替えについて、きちんとわかりやすくまとめていないな。

と、ふと思ったので、今回わかりやすく記載しておきます。

Pythonでversionを切り替えるには?

pythonのversionを切り替えるには、pyenvというツールを使います。

複数のpythonのversionを1つのホスト環境にインストールしておき、いつでも切り替えることが可能です。

Pythonの環境を切り替えるには?

virtual envに関しては、どこかで書いたような記憶があるのですが。。

virtual envは、python実行環境を切り替えることができるツールです。

例えば、pip installでソフトウェア開発するために、あるライブラリをインストールしたとします。

次に別のソフトウェアを開発しようとなった時に、すでにほかのライブラリがインストールされた環境で開発を進めるのはよくないことですよね。

すでにインストールしてあるものが原因で、正しく動作しない可能性もありますから。

なので、ソフトウェアを開発するごとに別環境を用意することが必要です。

virtual envで仮想環境を作成しておけば、その環境でなにをインストールしてもOKです。

そのようなこともあり、普通にvirtual envは使います。

python実行環境の作成・削除・切り替えも簡単にできるので、非常に便利なものです。

pyenvのインストール方法

※centos7で作業してます。

gitからクローンしてくる。

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

ログイン時に、pyenvコマンドが使用できるように、設定を.bash_profileに追記しておく。

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile # -> ※これは動作しなくなっている模様(2021/06/07確認)。

実際に、.bash_profileを反映し動作確認してみる。

$ source ~/.bash_profile

※追記(2021/06/18)

以下でないとbash_profile読み込み時にエラーがでるようです。

echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile

pyenvでのpython設定方法

インストール可能なpythonのversionを確認する。

$ pyenv install --list

好きなpythonのversionをインストールしてみる。

$ pyenv install 2.7.18
$ pyenv install 3.8.3

インストール済みのpythonのversionを確認する。

$ pyenv versions
  system
  2.7.18
* 3.8.3 (set by /home/vagrant/.pyenv/version)

現状いるディレクトリでのみpythonのversionを変更する場合、

$ pyenv local 3.8.3

全体のディレクトリで変更したい場合、

$ pyenv global 3.8.3

virtual envで仮想環境の作成方法

python 3.Xでのvirtual envの使い方を書いておきます。

適当なディレクトリで仮想環境(virtual env)用のディレクトリを作成します。

ここでは、`python_env`いかに作成してます。

$ pwd
/home/vagrant/python_env
$ python -m venv test_env

上のコマンドをたたくと、test_envというディレクトリが作成されているので、それを使用します。

以下コマンドで使用したい環境をアクティブにします。

$ source test_env/bin/activate
(test_env) $

上のように、コマンド実行後、コマンドプロンプトの先頭に環境名が追加されます。

仮想環境から抜けたいときは、以下コマンドで抜けれます。

(test_env) $ deactivate

これで、環境を何個でも好きなだけ作成して開発・テストできますね。

以上です!

タイトルとURLをコピーしました