Pythonを複数バージョン管理してみる
Pythonを使ったプログラミングをする際、Pythonの何バージョンを使うかで揉めることがある。毎回使用するバージョンに合わせて環境を入れ替えるのが面倒なので、Python仮想環境を使用して必要がバージョンに切り替えられる快活環境を作る。
実行環境
- OS:
- Ubuntu 18.04 LTS
- Windows 10 Pro ※追加中
- Python: 3.6.9
Python仮想環境ツール
conda | Anacondaに同封されているツール |
pyenv | オープンソースで開発しているバージョン管理ツール |
condaセットアップ
condaはAnacondaに同封されたツールなのでAnacondaをインストールします
参考:Anaconda Installing on Linux
Anacondaインストーラをダウンロード
Anaconda Individual Editionからインストーラをダウンロードする
インストーラを実行する
# ダウンロードしたインストーラに実行権限を与える
$ chmod +x Anaconda3-2020.11-Linux-x86_64.sh
# インストールを実行する
$ ./Anaconda3-2020.11-Linux-x86_64.sh
インストーラ実行時の操作は以下
Welcome to Anaconda3 2020.11
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>> Enterを入力
.
.
Do you accept the license terms? [yes|no]
[no] >>>
Please answer 'yes' or 'no':
>>> yes
.
.
Anaconda3 will now be installed into this location:
/home/$USER/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/$USER/anaconda3] >>> Enterを入力
.
.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> yes
condaチートシート
# 名前とPythonバージョンを指定して仮想環境を作る
# ex) conda create --name py36 python=3.6
$ conda create --name <name> python=<verson>
# 準備されている仮想環境リストを表示する
$ conda info --envs
# conda environments:
#
base * /home/dai_guard/anaconda3
py36 /home/dai_guard/anaconda3/envs/py36
# 仮想環境を有効にする ※デフォルトのbase環境になる
$ conda activate
# 名前を指定して仮想環境を有効にする
$ conda activate <name>
# 仮想環境を無効にする
$ conda diactivate
pyenvセットアップ
Ubuntu 18.04 LTSの場合
GitHubで公開されているオープンソースなツール
pyenv
をクローン&ビルドする
# リポジトリからクローンする
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# ビルドする
$ cd ~/.pyenv
$ src/configure
$ make -C src
環境変数を設定する
# pyenvのフォルダを設定する
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
# PATHにpyenvフォルダを追加する
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# 自動でpyenvの仮想環境を起動する設定
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
Windows 10 Proの場合
参考ページ
Windows 10 で Python のインストールから Poetry と pyenv の利用
pip
からpyenv
をインストール
> pip install pyenv-win --target\.pyenv
環境変数を設定する
Powershell
を起動して以下のコマンドを実行することで、ユーザーの環境変数を設定する
> [System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
次に管理者権限でPowershell
を起動して、以下のコマンドを実行することで環境変数の設定は終了
> [System.Environment]::SetEnvironmentVariable('PATH', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"Machine")
Powershell
再起動後、pyenv
コマンドが実行できるようになる
※注意
pyenv
インストール後、pyenv
で管理するバージョンのPython
に切り替り変わらないことがある。
その場合はpyenv rehash
コマンドを実行することで有効になります
pyenv
チートシート
# 現在インストールされているPythonバージョン
$ pyenv versions
* system (set by PYENV_VERSION environment variable)
3.8.7
# イントールできるPythonバージョン
$ pyenv install --list
# バージョンを指定してPythonをインストールする
# ex) pyenv install 3.8.7
$ pyenv install <version>
# Pythonバージョンを切り替える
# ex) pyenv shell 3.8.7
$ pyenv shell <version>
使ってみて
conda
-
メリット
- インストールが簡単
- Anacondaでメンテナンスしてるので信頼できる
-
デメリット
- Anacondaに同封なのでライセンス対応のため会社などでは使えない可能性がある
- 力補完が効かないのでコマンドを覚えないといけない
pyenv
-
メリット
- 入力補完が使えるので簡単
- venvと連動してフォルダごとに個別の環境を作れる
-
デメリット
- デフォルトだと現在使用中の仮想環境が表示されない