banner
bladedragon

bladedragon

大道至简——virtualenvの紹介

pythonは豊富な拡張ライブラリのために人気がありますが、開発環境に依存するアプリケーションの開発が増えるにつれて、移植や移行がますます困難になっています。オペレーティングシステムでは、コンテナ(たとえばdocker)を使用して開発環境と本番環境を分離できますが、Python アプリケーションの開発では、各アプリケーションに独立した実行環境を提供する必要があります。これにより、不要なバージョンの競合やトラブルシューティングのコストが増えるのを防ぐことができます。

それが virtualenv の役割です。

image

インストール#

インストールは非常に簡単です。

まず、pipをインストールしておく必要があります(Python をインストールするときに誰もインストールしないはずはありませんよね?)

次に、次のコマンドを入力します。

pip3 install virtualenv

インストールが完了するのを待ってください!

注:Python3 には venv モジュールが組み込まれているため、手動でインストールする必要はありません。インストールされているかどうかを確認するには、

python3 -m venv --help

基本操作#

仮想環境の作成#

仮想環境を作成したい場所で、次のコマンドを入力します。

virtualenv test

しばらく待つと、「test」という名前の仮想環境が作成されます。以降、この仮想環境でサードパーティのパッケージをダウンロードすると、すべてこのフォルダに保存されます。

以下の図は作成が成功したことを示しています。

image

その後、仮想環境のすべての設定は test フォルダに保存されます。

デフォルトのディレクトリ構造は次のようになります(Windows 10 環境)。

- test
	- Inculde
	- Lib
	- Script
	- tcl
	- LICENCE.txt

古いバージョンのコマンドで作成された仮想環境は、デフォルトで実際の環境に存在するサードパーティのパッケージを継承します。クリーンな仮想環境を作成する必要がある場合は、次のコマンドを入力します。

virtualenv --no-site-packages test

新しいバージョンでは、デフォルトでサードパーティのパッケージのないクリーンな環境が作成されます。

仮想環境に入る#

Windowsシステムでは、Scriptフォルダに移動して、activate.batファイルを実行します。

image

Linuxでは、次のコマンドを実行します。

source test/bin/activate

test は作成した仮想環境が保存されているフォルダです。

コマンドラインの前に仮想環境名が表示されると、仮想環境に切り替わったことを示します。その後、インストールしたサードパーティの依存関係はすべてこの仮想環境にダウンロードされ、実際の Python 実行環境に影響を与えません。実際には、これらの依存関係は、この仮想環境が保存されているフォルダにダウンロードされます。

仮想環境から抜ける#

Windowsで入力します。

image

Linuxシステムでは、次のコマンドを実行します。

source test/bin/deactive

環境の引き継ぎ#

これは一般的な方法であり、自分の開発環境を別のコンピュータに移動したり、他の人に引き継いだりする場合に使用されます。自分の仮想環境を別の場所にコピーする必要があります。

手順は次のとおりです。

  1. 環境パッケージを凍結し、パッケージのバージョン情報をテキストファイルに保存します。
$ pip freeze > requirements.txt
  1. 別の環境ですべての依存関係を直接ダウンロードします。
$ pip install -r requirements.txt

その他のコマンド#

使用法:

$ virtualenv [OPTIONS] DEST_DIR 

オプション:

–version 
#現在のバージョン番号を表示します。 
-h, –help 
#ヘルプ情報を表示します。 
-v, –verbose 
#詳細情報を表示します。 
-q, –quiet 
#詳細情報を表示しません。 
-p PYTHON_EXE, –python=PYTHON_EXE 
#使用するPythonインタプリタのバージョンを指定します。たとえば、–python=python2.5は、2.5バージョンのインタプリタを使用して新しい仮想環境を作成します。デフォルトでは、現在のシステムにインストールされている(/usr/bin/python)Pythonインタプリタが使用されます。 
–clear 
#非ルートユーザーのインストールをクリアし、新しい仮想環境を作成します。 
–no-site-packages 
#仮想環境がシステム全体のsite-packagesディレクトリにアクセスできないようにします。 
–system-site-packages 
#仮想環境がシステム全体のsite-packagesディレクトリにアクセスできるようにします。 
–unzip-setuptools 
#SetuptoolsまたはDistributeをインストールするときに解凍します。 
–relocatable 
#既存の仮想環境を再配置します。このオプションを使用すると、スクリプトが修正され、すべての.pthファイルが相対パスを使用するようになります。 
–distribute 
#Setuptoolsの代わりにDistributeを使用します。環境変数VIRTUALENV_DISTRIBUTEを設定することでも同じ効果が得られます。 
–extra-search-dir=SEARCH_DIRS 
#setuptools/distribute/pipリリースパッケージを検索するためのディレクトリです。複数の–extra-search-dirパスを追加できます。 
–never-download 
#オンラインからデータをダウンロードしないようにします。この場合、ローカルでパッケージを検索できない場合、virtualenvはエラーを報告します。
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。