この構成では、Python virtualenv
をセットアップします 。
virtualenv
の使用の背後にある意図 Python開発環境は、
グローバルシステムにインストールされた実行可能ファイルとライブラリをvirtualenv
内に直接インストールされたパッケージで分離するためのものです。 。その結果、1つのホスト上で複数のシステム環境を使用して特定のPythonアプリケーションを
テストできます。
virtualenv
のインストール DebianLinuxでは次のように簡単です:
# apt-get install python-virtualenv
この段階で、最初のvirtualenv
を作成できます。 python
開発環境(例: myapp
$ virtualenv --no-site-packages myapp Running virtualenv with interpreter /usr/bin/python2 New python executable in myapp/bin/python2 Also creating executable in myapp/bin/python Installing setuptools, pip...done.
--no-site-packages
を使用する オプションで、システム
グローバルパッケージが新しいvirtualenv
にリンクされないようにします 環境。
何が起こったのかを詳しく見ていきましょう。まず、
virtualenv
myapp
のコンテナとして機能する新しいディレクトリを作成しました 開発。
$ tree -L 2 myapp/ myapp/ ├── bin │ ├── activate │ ├── activate.csh │ ├── activate.fish │ ├── activate_this.py │ ├── easy_install │ ├── easy_install-2.7 │ ├── pip │ ├── pip2 │ ├── pip2.7 │ ├── python -> python2 │ ├── python2 │ └── python2.7 -> python2 ├── lib │ ├── python2.7 │ └── python-wheels └── local ├── bin -> /home/debian/myapp/bin └── lib -> /home/debian/myapp/lib 7 directories, 12 files
ご覧のとおり、新しいvirtualenv
環境には、個別のpython、pip、easy_installバイナリなど、環境を形成するために必要なすべての
ツールが含まれています。
この段階で、virtualenv
に入る準備ができています 環境:
$ cd myapp/ $ source bin/activate (myapp)debian@hostname:~/myapp$
virtualenv
と入力したもの Python環境
バイナリ実行可能ファイルへのPATHが変更されます:
$ echo $PATH /home/debian/myapp/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
その結果、すべてのPythonコマンドは、
virtualenv
を使用して実行されます。 環境バイナリ。 which
を使用します
Pythonバイナリへのフルパスを見つけるコマンド:
(myapp)debian@hostname:~/myapp$ which python pip easy_install /home/debian/myapp/bin/python /home/debian/myapp/bin/pip /home/debian/myapp/bin/easy_install
これで、グローバルシステム全体の環境に影響を与えることなくパッケージをインストールする準備が整いました。
例として、django
をインストールできます
私たちのmyapp
のみにローカルなパッケージ 環境:
(myapp)debian@hostname:~/myapp$ pip install django Downloading/unpacking django Downloading Django-1.8-py2.py3-none-any.whl (6.2MB): 6.2MB downloaded Installing collected packages: django Successfully installed django Cleaning up...
django
をテストする パッケージのインストール:
(myapp)debian@hostname:~/myapp$ python -c "import django; print(django.get_version())" 1.8
すべてが期待どおりに機能しています。 virtualenv
で作業を終えたら
deactivate
を使用して終了できる環境
bin/activate
内で提供される関数 スクリプト:
(myapp)debian@hostname:~/myapp$ deactivate debian@hostname:~/myapp$
django
へのアクセスの試み
virtualenv
内にインストールされたパッケージ 環境は失敗します:
$ python -c "import django; print(django.get_version())" Traceback (most recent call last): File "", line 1, in ImportError: No module named django