プログラミング初心者がアーキテクトっぽく語る

見苦しい記事も多数あるとは思いますが訂正しつつブログと共に成長していければと思います

virtualenvによるパッケージ管理

引き続きPythonの実行環境構築についてまとめてみる。

前回はPythonバージョン管理ツール pyenvを紹介した。

Pythonで書かれたツールを実行したり、Pythonで開発する上でPythonのバージョンを切り替えることが重要なことは前回述べた通りだ。pyenvを使うことでOSのシステム管理機能や他のPython製ツール、開発中のソフトウェアに影響を与えることなく自分が必要な機能を備えたPythonバージョンをインストールして利用することができる。詳しくはpyenvの紹介記事を参照して欲しい。

architecting.hateblo.jp

Pythonバージョンはpyenvで他の実行環境と分離できた。しかしこれだけではまだ不十分だ。ライブラリが分離できていない。

単独で動くソフトウェアは少ない。便利な外部ライブラリを使っているケースも多いだろう。もし自分が使いたいある外部ライブラリを既にOSが古いバージョンで利用していたら、そしてもしその古いバージョンにはあなたが必要とするAPIが備わっていなかったらあなたはその外部ライブラリの使用を諦めなくてはならない。もし最新の外部ライブラリをインストールしたらOSが動かなくなってしまうかもしれないからだ。

残念ながらpyenvはライブラリ環境は分離してくれない。ライブラリ環境をOSと切り離してくれるツールはないのだろうか?

virtualenvは隔離されたパッケージ環境を作ってくれるPythonパッケージ管理ツールだ。pyenv同様、Pythonを使う上で必須なので覚えておいて欲しい。

基本情報

  • tool to create isolated Python environments
  • プロジェクトごとに隔離されたパッケージ環境を作成する
  • Pythonの標準ライブラリvenvに入っている
  • pyCharmにはデフォルトで含まれておりプロジェクト作成に利用される

インストール

  • pipでインストール
$ pip install virtualenv

使い方

  • 仮想環境の作成
$ virtualenv <仮想環境名>
  • 仮想環境の作成 - バージョン指定
$ virtualenv -p python3.8 <仮想環境名>
  • 仮想環境に入る
$ source <仮想環境名>/bin/activate
  • 仮想環境を出る
$ deactivate
  • 仮想環境を消す
$ rm -rf <仮想環境名>