LoginSignup
1
2

[python] 仮想環境

Last updated at Posted at 2022-07-20

はじめに

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 listpip freezeでパッケージの出力が可能である。
このうちpip freezeは仮想環境をコピーする際など、まとめてパッケージをインストールするためのrequirements.txtを出力するのに便利である。

ちなみにpip listpip 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での仮想環境立ち上げ等をまとめました。やる気があったら他の環境もまとめたいと思います。(多分やらない)

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