はじめに
Python の開発では、プロジェクトごとに異なるライブラリを管理するために仮想環境を活用するのが一般的です。しかし、開発環境を別の PC に移したり、チームメンバーと同じ環境を共有したりする際に、環境の再現性を確保するのが難しくなることがあります。
そこで、本記事では Miniconda を使用して、既存の仮想環境を environment.yml
にエクスポートし、それを別の PC で復元する方法の一例を解説します。
目次
仮想環境とは?
Miniconda を使った環境の移行手順
まとめ
仮想環境とは?
仮想環境とは、Python のパッケージやライブラリをプロジェクトごとに分離して管理できる仕組みです。仮想環境を利用することで、以下のようなメリットがあります。
仮想環境のメリット
-
プロジェクトごとに異なるライブラリのバージョンを管理できる
- 例えば、A プロジェクトでは
numpy==1.19
、B プロジェクトではnumpy==1.23
というように、異なるバージョンを利用可能。
- 例えば、A プロジェクトでは
-
環境の再現性を確保できる
-
environment.yml
を利用することで、同じ環境を他の PC で簡単に再現できる。
-
-
システム環境への影響を抑えられる
- Python のグローバル環境を汚さず、開発ができる。
Miniconda を使った環境の移行手順
以下の手順で、Miniconda の仮想環境をエクスポートし、別の端末で復元します。
1. 既存の仮想環境を environment.yml
にエクスポート
まず、現在の仮想環境を確認します。
conda info --envs
対象の仮想環境名(例: venv
)を確認したら、次のコマンドで environment.yml
を作成します。
conda env export --name 仮想環境名 > environment.yml
environment.yml には Python のバージョンやインストールされたパッケージ情報が含まれます。
2. environment.yml
を GitHub にアップロードして別の端末で取得
作成した environment.yml
を GitHub リポジトリを使用して環境ファイルを共有します。以下の手順で GitHub にアップロードし、別の端末でクローンできます。
git add environment.yml
git commit -m "Add environment file"
git push
別の端末で、リポジトリをクローンして environment.yml
を取得できます。
git clone https://github.com/ユーザネーム/リポジトリ名.git
cd リポジトリ名
3. Miniconda のインストール(別端末)
新しい端末に Miniconda をインストールします。
Linux/macOS の場合
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Windows の場合
Miniconda の公式サイトからインストーラーをダウンロードして実行します。
4. environment.yml
から仮想環境を復元
environment.yml
を使って、新しい端末で仮想環境を作成します。
conda env create -f environment.yml
もし既に同じ環境名がある場合は、削除してから作成してください。
conda remove --name 仮想環境名 --all
環境が作成できたら、以下のコマンドで仮想環境をアクティブにします。
conda activate 仮想環境名
# 仮想環境を非アクティブにする場合
conda deactivate
5. 環境が正しく復元されたか確認
仮想環境が正しく復元されているか確認するために、以下のコマンドを実行します。
conda info --envs
conda list
python3 --version
まとめ
- 環境のエクスポート
conda env export --name 仮想環境名 > environment.yml
- 環境のインポート
conda env create -f environment.yml
- 環境のアクティブ化
conda activate 仮想環境名
# 仮想環境を非アクティブにする場合
conda deactivate
これらの手順を使えば、開発環境を簡単に再現でき、チームメンバーとの環境共有もスムーズになります。Python のプロジェクトを効率的に管理するために、ぜひ活用してください!