[Python] venvから仮想環境を作成する

初めに

筆者は、6月中旬より未経験から自社開発企業のWebエンジニアになることができた。ただこれまでRubyを中心に学習してきたが、実務ではメイン言語がPythonになったので、現在新しくキャッチアップしているところである。

今回はその中で、仮想環境・venvについて取り上げる。



仮想環境・venvとは

Python を使って開発や実験を行うときは、用途に応じて専用の実行環境を作成し、切り替えて使用するのが一般的です。こういった、一時的に作成する実行環境を、「仮想環境」 と言います。*1

上記の仮想環境を、Pythonではvenvを使用する



bundler --pathに近い?

Railsでいうところのbundlerの仕組みの一部分に近いのではないかと思う。bundlerは、Gemパッケージの管理ツールであり、installする際に--path vendor/bundle を使用することで、プロジェクト別にgemを管理することができる。


bundlerでは仮想環境という表現はしないものの、「プロジェクトごとに依存関係にあるパッケージを管理する」という意味合いで近いのではないか。



venvで実際に仮想環境を作成する

macOS。事前にpython, pipはインストール済み


新しいプロジェクト下で、仮想環境作成用のファイルを作成する

(base)  % python3 -m venv venv(名前は任意)
  • venvファイルが作成される


仮想環境の中に入る source venv/bin/activate

(base) % source venv/bin/activate
(venv) (base) %
  • source venv/bin/activateとすると、2行目より(venv)と表示され、仮想環境に入ったことがわかる


仮想環境の中でDjango4.0をインストールする

(venv) (base) % python3 -m pip install Django==4.0
 % python3 -m django --version
#=> 4.0 


仮想環境を抜ける deactivate

(venv) (base) % deactivate
 (base) python3 -m django --version
#=>  No module named django
  • deactivate で2行目より、(venv)が消え仮想環境から抜けたことがわかる
  • djangoのバージョンを確認するコマンドも、存在しないと返されてしまい、仮想環境下でインストールできていたことがわかる



参考

*1:仮想環境: Python環境構築ガイドより