Virtualenvを使用した仮想Python環境の構築
4587 ワード
Pythonプロジェクトを開発する過程で、DjangoやNumpyなどの第三者のライブラリや依存が頻繁に導入されます.これらの依存は通常、プロジェクトディレクトリの下ではなくPythonパッケージに直接インストールされます.したがってgitに同期すると、関連する依存情報は自動的に記録されず、他の環境に導入する際に依存を正しくインストールする方法が問題になります.
1つの元の方法は、プロジェクトディレクトリの下に依存を記録するためのファイルを作成し、導入された依存が変化したときに手動でファイルに記録することです.しかし、この方法は間違いなく面倒で非効率であり、人工記録で漏れやすい.
Pythonは独自のパッケージ管理ツール、すなわちpipを持っている.ではpipはこの問題の解決策を提供していますか.実際にはありますが、不完全です.
Nodejsが各プロジェクトの依存をプロジェクトディレクトリの下に置くのとは異なり、pipはグローバルな依存パッケージインストールを提供します.したがって、
そこで、独立したPython環境を作成し、独立したPython環境ごとに依存をインストールし、Pythonプログラムを実行することは、Dockerテクノロジーのように仮想コンテナで管理する簡単な実行可能なソリューションになります.
ここではvirtualenv、仮想Python環境を作成するpip packageについて説明します.
Note:virutualenvが作成した仮想環境はpip packagesだけでなく、新しいpython解釈器も作成されています.デフォルトで作成されたpython解釈器バージョンは、インストール時に使用されるpipに対応するpythonバージョンです.作成したpython解釈器のバージョンを指定する場合は、-pパラメータを使用します.
これで仮想環境の構築が完了します.pythonプロジェクトを管理する場合は、
virtualenvwapper
virtualenvは、独立した仮想環境を作成するタスクを完了していますが、仮想環境の場所をプロジェクトディレクトリの下に置くことで、異なる仮想環境を管理する際の不便を招くという欠点があります.virtualenvwrapperのタスクは、この管理を完了することです. virtualenvwrapperの動作モードは、すべての仮想環境を同じディレクトリの下に集中的に管理し、このディレクトリは環境変数 virtualenvwrapperが提供するコマンドはデフォルトでは使用できません.
使用
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
WORKON_HOME
によって決定される.ユーザーディレクトリの.profile
で指定できます.source $(which virtualenvwrapper)
を実行して環境に入る必要があります..profile
ディレクトリの下に入れ、コマンドラインの初期化時に環境をロードすることもできます.使用
$ mkvirtualenv cv -p /usr/bin/python3 # python3 , cv
(cv) $ #
(cv) $ deactivate #
$ workon #
$ workon cv #
(cv) $ deactivate #
$ rmvirtualenv cv #