はじめに
pythonでツールなどを開発する際に、用途によって必要なライブラリを含んだ実行環境を作成し、その環境下で開発を行うのがスタンダードとされています。
仮想環境を活用することで、PC上にあたかも別マシンで動くようなpython環境を構築できます。
つまり、独立して動くため同じシステム内の環境を汚したり競合なく開発が行えたり、作成したツール配布の際に実行環境を揃えられるため、ライブラリの差異で動かないといったことが解消できるといったメリットがあります。
運用としてbaseのライブラリは汚さずに、仮想環境ごとに必要なライブラリを揃えるといった感じが良さそうですね。
仮想環境の種類
次の3種類の仮想環境がよく使われている様子
名称 | 特徴 |
---|---|
venv | ・標準仕様なので安心感あり(Python Ver3.4以降) ・すぐ使える |
conda | ・Anacondaパッケージに標準搭載 |
virtualenv | ・サードパーティ製なのでpip installが事前に必要 ・venvより構築が少し楽 |
venvでの環境構築から有効まで
WindowsOSにてvenvではコマンドプロンプトとpowershellで、環境を構築できるようです。ただ、構築する際のバッチファイルが各々別のものを使っているらしいので注意が必要だ。本記事ではコマンドプロンプトでの構築を前提にしています。
参考サイト : 実務で必須の「Python仮想環境」について学ぼう!
(1) 仮想環境を構築したいフォルダまで移動
例えば、「my_project」というフォルダで構築したい場合は
cd yyy\zzz\my_projrct
といった感じで、直下まで辿り着く
(2) 仮想環境の作成
直下まで移動したら、以下のコマンドを打って仮想環境を作成する
python -m venv xxx
※xxxは任意の環境名称
(3) 仮想環境の有効化
ここまでで、my_project下に仮想環境が存在するが、まだアクティブな状態ではないです
xxx下のScriptsディレクトリに activate.bat
というバッチで仮想環境を立ち上げるようです
.\xxx\Scripts\activate.bat
これで仮想環境の有効化は完了。
成功するとコマンドプロンプト上で、ディレクトリの前に(xxx)といった感じで、現環境が表示される。
Power shellの場合ではactivate.bat
ではなく Activate.ps1
の方をたたく必要があります。
パッケージのインストール
仮想環境を立ち上げたら環境下で必要なパッケージをインストールする。
基本的なパッケージのインストールは、pipというpython標準搭載の管理システムを用いて行います。
よく使いそうなpipコマンド一覧
目的 | コマンド |
---|---|
パッケージ(xxx)インストール | pip install xxx |
パッケージ(xxx)をアンインストール | pip uninstall xxx |
アップグレード | pip install -upgrade xxx |
バージョンを指定してパッケージ(xxx)インストール | pip install xxx==Ver |
インストールされたパッケージ一覧表示 | pip list |
インストールされたパッケージ一覧表示 | pip freeze |
例) numpyをインストールしたい場合
環境下で以下を入力
pip install numpy
参考サイト : 【Python】pipとは何か?コマンド一覧と使い方を実例でわかりやすく解説|pipとpip3の違い(初心者向け)
仮想環境の無効化、削除
ライブラリを仮想環境下にて試しで使ってみて、ダメだった場合その環境が不要となる場合があると思われる。そのため、仮想環境の無効化、削除についても書いておこうと思います。
(1) 仮想環境の無効化
前提として、仮想環境が有効であった場合、同じくScriptsディレクトリ内の deactivate.bat
で環境を抜けることが出来ます。
deactive.bat
または
.\xxx\Scripts\deactive.bat
抜けた後はbase環境(デフォルト)に戻る
(2) 削除
これはシンプルで、作成した仮想環境のフォルダを削除すればよいです。
rmdir \s xxx
こんな感じでコマンドを打つか、ゴミ箱に入れてしまうかすればよいです。
インストール済みパッケージの出力
前述したpip list
やpip freeze
でパッケージの出力が可能である。
このうちpip freeze
は仮想環境をコピーする際など、まとめてパッケージをインストールするためのrequirements.txt
を出力するのに便利です。
ちなみにpip list
とpip freeze
の違いはパッケージのVer記載の有無です。
pip freeze
にVer情報あり
下記コマンドのように出力をリダイレクションでrequirements.txt
に向ければ、下簡単に作成できます。
pip freeze > requirements.txt
同様の環境を構築したいときは、このrequirements.txt
を使って以下のコマンドで、一括インストールできます。
pip install -r requirements.txt
他の人にpythonツールを渡すときなどに、requirements.txt
を一緒に渡してやれば、環境を揃えることが出来ます。
参考サイト : Python, pip list / freezeでインストール済みパッケージ一覧を確認
さいごに
参考にさせていただいたサイト様には感謝いたします。
今回はvenvでの仮想環境立ち上げ等をまとめました。やる気があったら他の環境もまとめたいと思います。(多分やらない)