メインコンテンツへスキップ
見出し画像

Python基礎10:仮想環境(venv/pipenv/conda)

    1.緒言

     (多言語でも同じですが)PythonではPython本体やライブラリ同士のVersion管理が必須でありVersionが異なると動作しないものがたくさんあります。
     例としてDeepLearningで有名なPytorchのVersion1.10系はPython 3.10がサポート対象外です。よってPythonのVersionを最新のものにしたとたんに動かなくなったりします。

     このようなトラブルを回避するために専用の環境「仮想環境」を作成することで他環境に影響を与えずにVesion管理・開発が可能となります。

    2.Pythonライブラリ:pipenv

     仮想環境を作成するPythonライブラリpipenvは下記にまとめました。

    3.標準ライブラリ:venv

     Pythonの標準ライブラリであるvenvを使用して仮想環境を作成します。個人的には"pipenv"の方が使いやすいです。

    3-1.環境構築1:仮想環境の初期化

     仮想環境の作成は”python -m venv <仮想環境名>”コマンドを実行します。実行後は指定した仮想環境名のフォルダが作成されます。
     Windowsは"<仮想環境>/Scripts"の中にPython本体周りのファイルが格納されています(Macはbin)。仮想環境を有効化することで本環境が優先的に使用されることで動く仕組みになっています。

    [Terminal]
    python -m venv note_virenv
    画像
    画像

    3-2.仮想環境へのログイン

     仮想環境へのログインは". <仮想環境名>/Scripts/Activate"で実行します。頭の"."は"source"でも実行可能です。
     Windows環境でターミナルは”Anaconda Prompt”だとエラーが出たため"Windows Powershell"を使用しました。

    [Terminal(Windows)]
    . note_virenv/Scripts/Activate
    
    [Terminal(Mac)]
    . note_virenv/bin/activate

     ターミナルの頭に仮想環境名がついていれば成功です。

    画像

     下記コマンドを実行すれば通常と異なる環境であることを確認できます。

    [Terminal]
    python --version
    pip list
    [OUT]
    Python 3.8.12
    
    Package    Version
    ---------- -------
    pip        21.1.1
    setuptools 56.0.0

    3-3.ライブラリのインストール

     ライブラリのインストールは仮想環境にログイン(有効化)の状態で通常通り"pip install <ライブラリ名>"で対応可能です。

    [Terminal]
    pip install numpy
    [IN]
    pip list
    
    [OUT]
    Package    Version
    ---------- -------
    numpy      1.23.2
    pip        22.2.2
    setuptools 56.0.0

     ”requirements.txt"を作成済みであれば下記でも実行可能です。

    [Terminal]
    pip install -r requirements.txt

    【pipのVersion更新】
     ”pipのVersionが古い”エラーが出た場合は下記コマンドで対応できます。

    python -m pip install --upgrade pip

    3-4.仮想環境からログアウト

     ログアウトする場合は”deactivate”コマンドを実行するだけです。

    [Terminal]
    deactivate

    4.Anaconda

     Anaconda環境を使用している方であれば仮想環境を作成できます。

    4-1.CLIベース

    4-1.GUIベース

    5.Docker:コンテナ

     PythonライブラリのVersionだけでなくOSなども含めて「コンテナ」という形で仮想環境を管理してくれるツールとしてDockerがあります。

     別記事で紹介していますのでご参考までに。

    参考資料

    あとがき

     先出



     
     

    KIYO

     
     
    普段は製造業で企画/開発/設計しております。記事はプログラミング・機械学習、IoT関係の記事をメインで作成し、なるべく1つの記事で知りたいことを網羅していきます。内容は学術的より実装・アウトプット(ほしくなるもの)を重視して作成しています。 面白そうな仕事があればやりたいです!

    あなたへのおすすめ