Virtualenvを使用した仮想Python環境の構築

4587 ワード

Pythonプロジェクトを開発する過程で、DjangoやNumpyなどの第三者のライブラリや依存が頻繁に導入されます.これらの依存は通常、プロジェクトディレクトリの下ではなくPythonパッケージに直接インストールされます.したがってgitに同期すると、関連する依存情報は自動的に記録されず、他の環境に導入する際に依存を正しくインストールする方法が問題になります.
1つの元の方法は、プロジェクトディレクトリの下に依存を記録するためのファイルを作成し、導入された依存が変化したときに手動でファイルに記録することです.しかし、この方法は間違いなく面倒で非効率であり、人工記録で漏れやすい.
Pythonは独自のパッケージ管理ツール、すなわちpipを持っている.ではpipはこの問題の解決策を提供していますか.実際にはありますが、不完全です.
pip freeze #         
pip install -r myFile #   myFile             pip packages.

Nodejsが各プロジェクトの依存をプロジェクトディレクトリの下に置くのとは異なり、pipはグローバルな依存パッケージインストールを提供します.したがって、pip freezeコマンドを使用すると、インストールされたpip packagesがすべてリストされる.
そこで、独立したPython環境を作成し、独立したPython環境ごとに依存をインストールし、Pythonプログラムを実行することは、Dockerテクノロジーのように仮想コンテナで管理する簡単な実行可能なソリューションになります.
ここではvirtualenv、仮想Python環境を作成するpip packageについて説明します.
$ pip install virtualenv #    virtualenv。
$ pip show virtualenv #    virtualenv      ,   virtualenv      。
$ virtualenv myEnv #       。          myEnv    ,         。
$ source myEnv/bin/activate #       。
(myEnv) $ #                     (myEnv)。
(myEnv) $ deactivate #         ,       deactivate   。
$ #        。

Note:virutualenvが作成した仮想環境はpip packagesだけでなく、新しいpython解釈器も作成されています.デフォルトで作成されたpython解釈器バージョンは、インストール時に使用されるpipに対応するpythonバージョンです.作成したpython解釈器のバージョンを指定する場合は、-pパラメータを使用します.
$ pip -v #    pip     python      ,    2.7.3
$ pip install virtualenv #     virtualenv        python        2.7.3
$ virtualenv myEnv #       
$ source myEnv/bin/activate #       
(myEnv) $ python -V #    python       ,2.7.3
(myEnv) $ deactivate #       
$ virtualenv myEnv3 -p /usr/bin/python3 #    python3    python          
$ source myEnv3/bin/activate #       
(myEnv3) $ python -V #    python       ,3.x.x

これで仮想環境の構築が完了します.pythonプロジェクトを管理する場合は、pip freeze > requirementを使用して仮想環境の依存パッケージをrequirementファイルにエクスポートし、インストールを配置する場合はpip install -r requirementを使用してrequirementファイルから依存を読み取り、インストールできます.
virtualenvwapper
virtualenvは、独立した仮想環境を作成するタスクを完了していますが、仮想環境の場所をプロジェクトディレクトリの下に置くことで、異なる仮想環境を管理する際の不便を招くという欠点があります.virtualenvwrapperのタスクは、この管理を完了することです.
$ pip install virtualenvwrapper #    virtualenvwrapper
  • virtualenvwrapperの動作モードは、すべての仮想環境を同じディレクトリの下に集中的に管理し、このディレクトリは環境変数WORKON_HOMEによって決定される.ユーザーディレクトリの.profileで指定できます.
  • virtualenvwrapperが提供するコマンドはデフォルトでは使用できません.source $(which virtualenvwrapper)を実行して環境に入る必要があります..profileディレクトリの下に入れ、コマンドラインの初期化時に環境をロードすることもできます.

  • 使用
    $ mkvirtualenv cv -p /usr/bin/python3 #    python3          ,    cv
    (cv) $ #          
    (cv) $ deactivate #       
    $ workon #            
    $ workon cv #          
    (cv) $ deactivate #       
    $ rmvirtualenv cv #