LoginSignup
3
1

More than 1 year has passed since last update.

この記事では、Pythonの仮想環境である

  • pyenv + vertualenv
  • pyenv + conda
  • venv

の3つを比較します。

わたしの手元の環境
  • MacBookAir(M1, 2020)
  • macOS Monterey 12.5

pyenv + vertualenv

メリット

  • 自分が必要なパッケージを1つずつ入れたい時に最適。
  • Python自体のバージョン管理も可能。

デメリット

  • pyenvとvertualenvをインストールする必要がある(pyenv重い😢)。

手順

  1. pyenvをインストールする
    brew install pyenv
    
    パスを通すように指示されるので、書かれている通りにパスを通す
  2. virtualenvをインストールする
    brew install pyenv-virtualenv
    
  3. python3.x.xをインストールする
    pyenv install 3.x.x
    
    ※M1 Macでは特定のバージョンのPythonしか入れられないようです(参考)
  4. virtualenvを作成する
    pyenv virtualenv 3.x.x 環境名
    
  5. 仮想環境を起動する
    pyenv global 3.x.x/envs/環境名
    
  6. 仮想環境を終了する
    pyenv global system
    

pyenv + conda

メリット

  • Python自体のバージョン管理も可能
  • 稀にcondaでしか入らないライブラリがある(今はほとんどない)ので、condaなら最強
  • 分析系・科学計算系に強い

デメリット

  • pyenvとcondaをインストールする必要がある(pyenv重い😢)。
  • M1 Macでは、pyenv経由でanacondaを入れることができないので、注意(公式HPから入れよう😢)。
  • condaは全体的に重い気がする。

手順

  1. 公式HPからanacondaをインストールする
  2. インストールできるanacondaのバージョンを確認する
    pyenv install --list | grep anaconda
    
  3. anacondaをインストールする
    pyenv install anaconda3-x.x.x
    
    3-x.x.xは任意のバージョンを
  4. 環境を切り替える
    pyenv global anaconda3-x.x.x
    
  5. 仮想環境を作成する
    conda create -n 仮想環境名 python=3.x.x インストールしたいパッケージ名
    
  6. 仮想環境を起動する
    pyenv global anaconda3-x.x.x/envs/仮想環境名
    
  7. 仮想環境を修了する
    pyenv global system
    

venv

メリット

  • Python3系の標準機能なので、わざわざインストールする必要がない。
  • とてもシンプル。

デメリット

  • Python自体のバージョン管理は不可

手順

  1. 仮想環境を作成する
    python -m venv 適当な仮想環境の名前
    
  2. 仮想環境を起動する
    仮想環境を作成したディレクトリで以下のコマンド
    .仮想環境名/bin/activate
    
  3. ライブラリをインストールする
    pip install ライブラリ名
    
    もしくは
    pip install -r requirements.txt
    
  4. 仮想環境を終了する
    deactivate
    

まとめ

評価項目 pyenv + vertualenv pyenv + conda venv
Python自体のバージョン管理 可能 可能 不可能
インストール 必要 必要 不要
軽さ ×

参考

以下の記事を参考にさせていただきました🙏

普段はvenv以外使わないので、間違っているところなどありましたら教えていただけると幸いです🙇‍♀️

3
1
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
3
1