MENU

Python 開発環境構築

概要

本記事では、特にMac OS での Python の開発環境におけるバージョン管理、仮想環境管理、依存環境管理に焦点を当てて解説していきます。
以下の開発フローにおける STEP 2,3,4 の位置付けです。

開発フロー
STEP
バージョン管理システムの準備

Git リポジトリを作成/クローン

STEP
Pythonバージョンの選択

pyenvなどで Pythonバージョンを指定して管理

STEP
仮想環境の構築

pipenvなどで仮想環境を作成管理

STEP
依存関係の管理

PipfilePipfile.lockrequirements.txtで依存関係を管理

STEP
フレームワークの設定

必要なフレームワークのインストールや設定

STEP
コーディング

Python プロジェクトの開発において、Pythonバージョン管理、依存関係管理、仮想環境管理は、プロジェクトの互換性と再現性を保証するために不可欠です。
例として、以下に必要ケースをまとめます。

バージョン管理が必要になるケース・新しいプロジェクトを始める時に、そのプロジェクトで利用するPythonのバージョンを決める必要がある
・古いプロジェクトを引き継いだ時に、そのプロジェクトが依存しているPythonのバージョンを切り替える必要がある
・Python 2.xと3.xの両方を扱う必要があり、バージョンを切り替える必要がある
仮想環境管理が必要になるケース・複数のPythonプロジェクトを同時に進めており、依存ライブラリの競合を避ける必要がある
・システムのPythonに影響を与えずに、プロジェクト専用の環境を構築したい
・テスト環境と本番環境で、依存ライブラリを完全に分離したい
・新しい開発者がプロジェクトに参加し、同じ実行環境を構築する必要がある
依存関係管理が必要になるケース・外部ライブラリを新しくインストールする必要が出てきた
・セキュリティの脆弱性が見つかり、特定のライブラリをアップデートする必要がある
・本番環境にデプロイする前に、開発環境と同じ依存関係を再現する必要がある
・新しい開発者がプロジェクトに参加し、依存ライブラリのインストールが必要になった

※ 本記事の内容は個人の見解と解釈によるため参考程度にご覧ください。誤った情報がある場合ご連絡いただけますと幸いです。

1. Pythonバージョン管理

pyenv

概要

pyenvは、複数のPythonバージョンを管理し、プロジェクトごとに異なるバージョンを簡単に切り替えることができるツールです。

目的

異なるプロジェクトで異なるPythonバージョンを使用する必要がある場合に、それぞれのバージョンをシステムにインストールし、切り替えることができます。

使用方法
1. pyenvをインストール
pip install pyenv

macOSにpyenvがインストールされます。

2. Pythonバージョンのインストール
pyenv install 3.8.10

Python 3.8.10がシステムにインストールされます。pyenvを使うことで、複数のPythonバージョンをインストールできます。

pyenvでインストールしたバージョンの確認方法
# 実行例
$ pyenv versions

  system
* 3.8.10 (set by /Users/your_name/.pyenv/version)
  3.7.9
  3.6.12
3. グローバルのPythonバージョンの設定
pyenv global 3.8.10

システム全体で使用するデフォルトのPythonバージョンが3.8.10に設定されます。ターミナルでpython --versionコマンドを実行すると、バージョン3.8.10が実行されるようになります。複数バージョンインストール時の切り替え方法も同様です。

4. ローカルのPythonバージョンの設定
cd /path/to/project
pyenv local 3.7.5

プロジェクトディレクトリ内でのみ、Python 3.7.5が使用されるようになります。ディレクトリを移動すると、グローバル設定のバージョンに戻ります。

まとめ

のようにpyenvは、システム全体およびプロジェクトごとに柔軟にPythonのバージョン管理ができるツールです。プロジェクトの要件に合わせて最適なPythonバージョンを使い分けられるため、Python環境の構築が非常に容易になります。

  • pyenv install VERSION でPythonの任意のバージョンをインストールできます
  • pyenv versions でインストール済みのPythonバージョンを一覧表示できます
  • pyenv global VERSION でシステム全体のグローバルなPythonバージョンを変更できます
  • pyenv local VERSION で特定のプロジェクトディレクトリ内のみで使用するPythonバージョンを変更できます

この柔軟性が、pyenvの最大の特徴です。プロジェクトごとに異なるPythonバージョンを無理なく割り当て、バージョンの互換性問題を回避できます。開発者は複数のPythonプロジェクトを並行して進められ、効率的な開発が可能になります。

2. 仮想環境管理

venv

概要

venvは、Python 3.3以降に標準で含まれている軽量な仮想環境管理ツールです。プロジェクト専用の仮想環境を作成し、その環境内にのみパッケージをインストールできます。

目的

プロジェクト間での依存パッケージの競合を防ぎ、開発環境を分離することが目的です。システムのPythonに影響を与えずに、必要なパッケージをインストールできます。

使用方法
1. 仮想環境の作成
python3 -m venv myenv

myenvという名前の仮想環境が作成されます。

2. 仮想環境の有効化
source myenv/bin/activate

仮想環境が有効化します。シェルのプロンプトが(myenv)のように変わり、この環境内でのみPythonコマンドが実行可能になります。

Windowsの場合
myenv\Scripts\activate
3. 依存パッケージのインストール
pip install django

仮想環境内で依存パッケージをインストールします。

4. 仮想環境の無効化
deactivate

仮想環境を無効化します。

pipenv

概要

pipenvは、Python の仮想環境管理と依存関係管理を同時に行えるツールです。Pipfileで依存パッケージを宣言的に管理でき、自動で仮想環境を作成・管理します。

目的

プロジェクト間での依存関係の競合を防ぎ、再現性の高い開発環境を構築することが目的です。開発用と本番用の依存パッケージを分離して管理できます。

使用方法
1. pipenvのインストール
pip install pipenv

pipenvがインストールされます。

インストール方法のお話

Homebrew(brew)とpip(pip)を使ったインストール方法について


Homebrew(macOSの場合)

  • Homebrewは、macOSで動作するパッケージマネージャーです。
  • /usr/local/binにパッケージをインストールします。

インストール例

# Homebrewをインストール(初回のみ)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# パッケージのインストール
brew install パッケージ名
  • brew install python
  • brew install pipenv
  • brew install poetry

pip(Pythonパッケージの場合)

  • pipは、Pythonのパッケージをインストールするためのツールです。
  • --userオプションを付けると、ユーザーのホームディレクトリ内(~/.local/など)にインストールされます。

インストール例

bashCopy code# パッケージのインストール(ユーザー環境)
pip install --user パッケージ名

# パッケージのアンインストール(ユーザー環境)
pip uninstall パッケージ名
  • pip install --user pipenv
  • pip install --user poetry
  • pip install --user virtualenv

違いと使い分け

  • Homebrewは主にmacOSで利用され、システムツールなどをインストールするのに使われます
  • pipはPythonのパッケージ専用で、--userでユーザー環境にインストールできます
  • Python関連ツールの場合
    • pipenvやpoetryはpip install --userが標準的な方法
    • ただしmacOSならbrew installでもインストール可能
  • Pythonそのものの場合
    • macOSではbrew install pythonが一般的
    • その他の環境では公式パッケージやpyenvなどを使う

状況に応じて適切な方法を使い分ける必要がありますが、Pythonパッケージに関してはpipが標準的な方法です。

2. 仮想環境の作成
mkdir myproject
cd myproject
pipenv --python 3.9  # Pythonのバージョンを指定して仮想環境を作成

プロジェクトディレクトリを作成し、そのディレクトリ内で仮想環境を作成します。

3. 依存パッケージのインストール
pipenv install django

仮想環境内で依存パッケージをインストールします。インストールした依存パッケージはPipfileに自動的に記録されます。(※Pipfileについては後述)

仮想環境構築と依存関係管理の同時処理

厳密には、pipenv install djangoを実行した時に、以下の2つの処理が行われます。

  1. 仮想環境の作成
  2. 仮想環境内にDjangoをインストール

つまり、pipenv --python 3.9のようにPythonのバージョンを指定して仮想環境を作成しなくても仮想環境が構築されます。

Pythonのバージョンは、以下の2つの方法で決まります。

  1. pipenvにPythonバージョンを指定しない場合
    • システム上のデフォルトのPythonバージョン(pyenvでグローバルに設定されたバージョン)が使用されます。
  2. pipenvにPythonバージョンを指定した場合
    • 指定したバージョンのPythonが仮想環境用にインストールされ、そのバージョンが使用されます。
    • 例: pipenv --python 3.9と指定すると、Python 3.9の仮想環境が作成されます。

作成された仮想環境のPythonバージョンを確認する方法

pipenv --venv # 仮想環境のパスが表示される
pipenv --py # 仮想環境内のPythonバージョンが表示される

# 仮想環境をアクティベートした状態で以下のコマンドを実行すると、そのバージョンを確認できます。
pipenv shell
python --version
pipenvはvenvで仮想環境を構築しているお話

pipenvは内部的にvenvを使って仮想環境を構築しています。

pipenvは主に以下の2つの役割を果たすツールです。

  1. 依存関係管理 (Pipfileでの宣言的な管理)
  2. 仮想環境の管理

そのため、実際の仮想環境の作成・管理にはPython標準のvenvモジュールを利用しています。

pipenvは依存関係管理機能とvenvを統合したようなツールだと捉えることができます。つまり、pipenvを使えば依存関係の管理と仮想環境の構築を同時に行えるわけです。

pipenv内部では以下のような処理が行われているはずです。

  1. pipenv installコマンドを実行
  2. 内部でvenvを呼び出し、仮想環境を作成
  3. Pipfileに従って依存パッケージをインストール

なので、pipenv --venvで表示される仮想環境のパスは、実際にはvenvによって作成された仮想環境を指しているのです。

このようにpipenvはvenvをラッピングして高度な機能を提供していますが、根底にあるの仮想環境作成はvenvに依存しています。

仮想環境の有効化前後でのパッケージインストールのお話

仮想環境を有効化する前にパッケージをインストールした場合

  • システムの実行環境(グローバルな環境)にパッケージがインストールされます
  • インストール先はシステムのPythonパスになります(例:/usr/local/lib/python3.9/site-packages)
  • ユーザー権限さえあれば、システム全体で使えるようになります

仮想環境を有効化した後にパッケージをインストールした場合

  • 仮想環境内にのみパッケージがインストールされます
  • インストール先は仮想環境のパス(例: ~/.virtualenvs/env/lib/python3.9/site-packages)になります
  • 仮想環境が有効な間のみ、そのパッケージが使用可能になります
  • システムの実行環境には影響を与えません

pipenvの場合、pipenv install コマンドを使う限り、必ず仮想環境内にパッケージがインストールされます。仮想環境の有効化(pipenv shell)の有無は関係ありません。

つまり、以下の2通りのケースで、どちらも仮想環境内にパッケージがインストールされます。

仮想環境を有効化する前にパッケージをインストールする場合

pipenv install django
pipenv install requests

仮想環境を有効化した後にパッケージをインストールする場合

pip install django
pip install requests

前者の場合、pipenvは内部的に以下の処理を行っています。

  1. 仮想環境がまだ無い場合は新しく作成する
  2. その仮想環境内にdjangoをインストールする

後者の場合も、pip install は仮想環境内で実行されるため、その環境内にパッケージがインストールされます。

一方で、pip install コマンドをpipenvの仮想環境外で単独で実行した場合は、システムの実行環境(グローバル環境)にパッケージがインストールされます。

要するに、pipenv install コマンドを使う限り、必ず仮想環境内にパッケージがインストールされます。仮想環境の有効化は関係ありません。有効化は別の操作であり、仮想環境内のPythonやパッケージを使うためだけに行います。

この仕様のおかげで、pipenvユーザーは仮想環境の有効化を意識することなく、常に仮想環境内で依存パッケージを管理できるようになっています。

4. 仮想環境の有効化と無効化
pipenv shell

仮想環境を有効化します。仮想環境がアクティベートされ、その環境内でコマンドが実行できるようになります。

exit

仮想環境を無効化します。

virtualenv

概要

virtualenvは、venvよりも柔軟な機能を持つ仮想環境管理ツールです。Python 2.xでも利用可能で、高度な設定やカスタマイズができます。

目的

プロジェクト専用の仮想環境を構築し、依存パッケージの管理を行うことが目的です。venvよりも幅広い要件に対応できます。

virtualenv が venv よりも機能が豊富で柔軟性が高い点のお話

virtualenvは、venvよりも機能が豊富で柔軟性が高い点が複数あります。具体的には以下の点が挙げられます。

1. Python 2.xサポート virtualenvはPython 2.xにも対応しています。一方、venvはPython 3.3以降でのみ利用可能です。古いPythonバージョンでも仮想環境を構築できるというメリットがあります。

2. 複数のPythonインストール管理 virtualenvには複数のPythonインストールを切り替えて利用できる機能があります。異なるPythonバージョンの仮想環境を簡単に作成できます。venvにはこの機能はありません。

3. シームレスな仮想化 virtualenvを使うと、仮想環境内でOS付属のコマンド(printenv、cdなど)を実行しても、グローバルな環境変数などが引き継がれます。つまり、仮想環境のように感じさせずに済むシームレスな仮想化が可能です。

4. 仮想化の粒度制御 virtualenvは仮想環境化する範囲をカスタマイズできます。例えば、ライブラリフォルダのみを仮想化したり、パスの一部のみを仮想化したりできます。venvはそのような細かな制御ができません。

5. カスタマイズ機能 virtualenvは、様々な設定オプションを公開しており、起動スクリプトのカスタマイズや、サイトパッケージのコピー/リンク選択などができます。venvはシンプルな代わりに、そういったカスタマイズ性は低くなっています。

6. プラグインサポート virtualenvは様々な拡張プラグインをサポートしており、さらに機能を追加できます。venvにはそのようなプラグイン機構がありません。

このようにvirtualenvには、venvにはない高度で柔軟な機能が多数用意されています。ただし、その分設定が複雑になる可能性もあります。

シンプルな仮想環境が必要な場合はvenvで十分ですが、よりカスタマイズを求める場合や、Python 2.xで使う必要がある場合などはvirtualenvを選ぶメリットがあります。用途に合わせて、2つのツールを使い分ける必要があります。

使用方法
1. virtualenvのインストール
pip install virtualenv

virtualenv がインストールされます。

2. 仮想環境の作成
virtualenv myenv

myenvという名前の仮想環境が作成されます。

3. 仮想環境の有効化
source myenv/bin/activate

仮想環境を有効化します。

Windowsの場合
myenv\Scripts\activate
4. パッケージのインストール
pip install django

仮想環境を無効化します。

5. 仮想環境の無効化
deactivate

仮想環境を無効化します。

まとめ

仮想環境は、プロジェクト専用の独立した実行環境を作成し、そこにのみ必要なパッケージをインストールできる仕組みです。プロジェクト間での依存パッケージの競合を防ぎ、開発環境を分離することができます。

  • venvはシンプルな標準ツール
  • pipenvは依存関係管理と仮想環境管理を同時に行える
  • virtualenvは高度な機能とカスタマイズ性が高い

用途に合わせて、これらのツールを使い分ける必要があります。仮想環境を適切に活用することで、再現性の高い開発環境を構築でき、Python開発をスムーズに進められます。

3. 依存関係管理

pipenv

概要

pipenvは、PythonのパッケージとそのバージョンをPipfileで宣言的に管理できるツールです。仮想環境と依存関係の管理を同時に行えるのが最大の特徴です。

目的

プロジェクト間での依存パッケージの競合を防ぎ、開発環境と本番環境での再現性を確保することが目的です。

使用方法
1. pipenvのインストール
pip install pipenv

macOSにpyenvがインストールされます。インストールした依存パッケージはPipfileに自動的に記録されます。

2. Pipfileの作成と依存パッケージのインストール
mkdir myproject
cd myproject
pipenv install django

インストールした依存パッケージはPipfileが作成され、自動的に記録されます。

Pipfile のフォーマット
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
requests = "*"       # requestsの最新版がインストールされる
django = "==3.2.18"  # Django 3.2.18がインストールされる 
numpy = ">=1.20"     # NumPy 1.20以上の最新版がインストールされる

[dev-packages]
pytest = "*"
3. 依存パッケージの追加
pipenv install requests

Pipfileに追記されます。

複数の依存パッケージを一度にインストールする方法

方法1. pipenv installコマンドで複数のパッケージ名を空白区切りで指定する

pipenv install requests pandas numpy

この方法で、requestsとpandas、numpyの3つのパッケージが一度にインストールされ、Pipfileに記述されます。

方法2. Pipfileに直接パッケージ名を記述し、pipenv installを実行する

[packages]
requests = "*"
pandas = "*" 
numpy = "*"
pipenv install

pipenv install を実行すると、Pipfileに記載された全パッケージがインストールされます。

上記の2つの方法で、複数のパッケージを一括してインストールできます。後者の方法は、Pipfileにパッケージ名を明示的に残せるので推奨されています。

開発の過程で必要になったパッケージを随時Pipfileに追記していき、pipenv installを実行することで、簡単に依存関係を更新できます。

また、pipenv install実行時に--devオプションを付けると、[dev-packages]セクションに記述された開発用の依存パッケージもインストールされます。

codepipenv install --dev

このように、pipenvでは柔軟に複数の依存パッケージを一括でインストール・管理できるようになっています。

4. 依存関係の固定化
pipenv lock

Pipfile.lockを更新し、パッケージのバージョンを固定化します。

Pipfile.lockのフォーマット
{
  "_meta": {
    "hash": {
      "sha256": "sha256ハッシュ値"
    },
    "pipfile-spec": 6,
    "requires": {
      "python_version": "使用Pythonバージョン"
    },
    "sources": [
      {
        "name": "pypi",
        "url": "https://pypi.org/simple",
        "verify_ssl": true
      }
    ]
  },
  "default": {
    "パッケージ名": {
      "hashes": [
        "sha256ハッシュ値",
        "sha256ハッシュ値"  
      ],
      "version": "==パッケージバージョン"
    }
  },
  "develop": {
    "パッケージ名": {
      "hashes": [
        "sha256ハッシュ値"
      ],
      "version": "==パッケージバージョン"
    }
  }
}
  • _metaには使用Pythonバージョン、pipfileのスペック、パッケージのソースURLなどのメタデータが格納されます。
  • defaultセクションには本番環境の依存パッケージ情報が格納されます。
    • ハッシュ値とインストールされたパッケージのバージョンが記録されています。
  • developセクションには開発環境のみで必要な依存パッケージ情報が格納されます。

このように、Pipfile.lockには実際にインストールされた依存パッケージの完全な情報と、正確なバージョン、依存関係のツリーが記録されています。

Pipfile.lockの主な役割は、異なる環境でも同じ依存関係を再現できるようにすることです。このファイルをリポジトリに含めることで、開発者間で統一された環境を構築できるのです。

Pipfile.lockはJSONフォーマットで、pipenvが自動的に生成・更新します。内容を直接編集することはありません。

poetry

概要

poetryは、pipenvと同様に依存関係の宣言的な管理が可能なツールですが、ビルドシステムとの連携にも優れています。

目的

依存パッケージの管理と再現性の確保が目的で、pipenvよりもパッケージのビルドやパブリッシュを容易にします。

使用方法
1. poetryのインストール
pip install poetry

poetryがインストールされます。

2. 新規プロジェクトの初期化
poetry new myproject

pyproject.tomlが作成されます。

pyproject.toml のフォーマット
[tool.poetry]
name = "my-project"
version = "0.1.0"
description = ""
authors = ["Your Name <[email protected]>"]

[tool.poetry.dependencies]
python = "^3.8"
django = "^3.2.0"
requests = "^2.28.1"

[tool.poetry.dev-dependencies]
pytest = "^7.1.2"

pyproject.tomlはTOMLフォーマットで書かれた設定ファイルです。

  • [tool.poetry]セクションでプロジェクトの基本情報を設定
  • [tool.poetry.dependencies]でプロジェクトの依存パッケージを記述
  • [tool.poetry.dev-dependencies]で開発時のみ必要な依存パッケージを記述
3. 依存パッケージのインストール
poetry add django

pyproject.tomlの[tool.poetry.dependencies]セクションに自動的に追記されます。

複数の依存パッケージを一度にインストールする方法

方法1. poetry addコマンドに続けて複数のパッケージ名を空白区切りで指定する。

poetry add django requests pandas

pyproject.tomlの[tool.poetry.dependencies]セクションに自動的に記述されます。

方法2. pyproject.tomlの[tool.poetry.dependencies]に直接パッケージ名を記述し、poetry installを実行する。

[tool.poetry.dependencies]
django = "^3.2"
requests = "^2.28" 
pandas = "^1.4"
poetry install

poetry install を実行すると、pyproject.tomlに記載された全パッケージがインストールされます。

記述したpyproject.tomlは依存関係の宣言的な管理にも使えるため、後者の方法が推奨されています。

また、開発用の依存パッケージは[tool.poetry.dev-dependencies]セクションに記述します。

[tool.poetry.dev-dependencies]
pytest = "^7.1"
black = "^22.8"

このように、poetryでは柔軟に複数のパッケージを一括でインストール・管理できます。用途に合わせて上記2つの方法を使い分けることができます。

4. 依存関係の固定化
poetry lock

poetry.lockを更新し、パッケージのバージョンを固定化します。

poetry.lockのフォーマット
[[package]]
name = "django"
version = "3.2.18"
description = "A high-level Python Web framework..."
category = "main"

[[package]]
name = "requests"
version = "2.28.2"
description = "Python HTTP for Humans."
category = "main"

[metadata]
python-versions = "^3.8"
content-hash = "907d492f5b9a8c3788e922e149b13a2fcd326f7c675b74e4cba9209c15b5e08f"
まとめ

Pythonプロジェクトでは、外部ライブラリやフレームワークなどの依存パッケージを適切に管理することが重要です。依存関係を明示的に宣言し、異なる環境でも同じ依存関係を再現できるようにすることで、開発の効率やプロジェクトの健全性が高まります。

pipenv
  • 仮想環境管理と依存関係管理を同時に行えるツール
  • Pipfileで依存パッケージを宣言的に管理
  • Pipfile.lockで正確な依存関係を固定化
  • pipenv installで簡単に依存パッケージとその環境を構築
pipenv
  • pipenvと同様の機能があり、ビルド/パッケージングとの連携も強力
  • pyproject.tomlで依存パッケージを記述
  • poetry.lockで実際のインストール状況を保持
  • poetry addで対話的に依存パッケージを追加可能

pipenvやpoetryなどの専用ツールを活用し、プロジェクトの要件に合わせてパッケージを宣言的に管理することが推奨されます。仮想環境と合わせて適切に運用することで、再現性の高い開発環境を構築でき、Pythonプロジェクトをスムーズに進められるはずです。

4. 統合ツール(おまけ)

conda

概要

condaは、Anacondaディストリビューションのパッケージであり、仮想環境管理と依存関係管理が一体化されています。Pythonのみならず、データサイエンス関連のさまざまなライブラリやアプリケーションを効率的に扱えるのが特徴です。

目的
  • データサイエンス分野で使用される様々なパッケージを手軽にインストール・管理できるようにすること
  • 環境を分離し、プロジェクトごとに異なるバージョンのパッケージを使えるようにすること
使用方法
1. 仮想環境の作成
conda create -n myenv python=3.9

myenvという名前の新しい仮想環境が作成され、Python 3.9がインストールされます。

2. 仮想環境の有効化
conda activate myenv

作成した仮想環境を有効化します。プロンプトに(myenv)と表示されれば有効化されています。

3. パッケージのインストール
conda install numpy pandas scipy

この例では、numpy、pandas、scipyの3つのパッケージが仮想環境myenvにインストールされます。

既存の仮想環境にパッケージを追加インストールする方法
方法1. conda installコマンドでパッケージを直接インストール
  1. 対象の仮想環境を有効化
conda activate myenv

2. conda installコマンドでパッケージを直接インストール

conda install numpy
conda install scikit-learn

この方法は、すぐにパッケージをインストールできる点では便利ですが、依存関係の管理が困難になる可能性があります。

方法2. environment.ymlの利用

1. 既存のenvironment.ymlファイルを書き出します。

conda env export > environment.yml

2. エディタでenvironment.ymlを開き、dependenciesセクションに新しいパッケージを追記します。

name: myenv
dependencies:
  - python=3.9
  - numpy
  - pandas
  - scikit-learn # 追加

3. 追記したenvironment.ymlに基づいて環境を再構築します。

conda env update -f environment.yml

4. 環境が正しく更新されたか確認します。

conda list

この方法の利点は、明示的に依存パッケージを管理できること、再現性が高いこと、チームメンバーと環境を共有しやすいことです。

4. 依存関係の管理方法
conda env create -f environment.yml

空のenvironment.ymlファイルが作成されます。

name: myenv  # 環境名
channels:
  - conda-forge  # パッケージのチャンネルを指定
dependencies:  
  - python=3.9  # Pythonのバージョン
  - numpy  
  - pandas
  - scikit-learn
  - pip  # pipでインストールするパッケージを指定できる
  - pip:
    - mlflow  # pipからインストールするパッケージ

環境ファイルにパッケージを記述 environment.ymlを編集し、必要なパッケージを記述します。

conda env create -f environment.yml

environmentファイルに記述された依存パッケージがインストールされたmyenvという環境が作成されます。

5. 仮想環境の無効化
conda deactivate

仮想環境を無効化し、ベース環境に戻ります。

まとめ

condaは、データサイエンスの分野に特化したパッケージ管理ツールであり、依存関係管理と仮想環境管理を同時に行える便利なツールです。

conda
  • 依存関係管理と仮想環境管理を同時に行えるツール
  • データサイエンス分野のパッケージが豊富に用意されている
  • 独自のパッケージリポジトリを使うため、PyPIのパッケージとの連携に注意

condaが利用できるパッケージの選択肢は、標準の公開パッケージリポジトリPyPIに比べて制限されています。
一方で、データサイエンス分野の主要パッケージはcondaリポジトリで提供されており、ビルドされたバイナリ配布がインストールできるため、環境構築が非常に簡単になるメリットもあります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次