4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonを複数バージョン管理してみる

Last updated at Posted at 2021-02-13

Pythonを複数バージョン管理してみる

Pythonを使ったプログラミングをする際、Pythonの何バージョンを使うかで揉めることがある。毎回使用するバージョンに合わせて環境を入れ替えるのが面倒なので、Python仮想環境を使用して必要がバージョンに切り替えられる快活環境を作る。

Python_VE.png

実行環境

  • 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からインストーラをダウンロードする

downlaod_link.jpg

インストーラを実行する

# ダウンロードしたインストーラに実行権限を与える
$ 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と連動してフォルダごとに個別の環境を作れる
  • デメリット

    • デフォルトだと現在使用中の仮想環境が表示されない
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?