依存関係の指定

依存関係の宣言と管理

Python アプリケーションの依存関係は標準 requirements.txt ファイルで宣言します。次に例を示します。

Flask==0.10.1
python-memcached==1.54

App Engine にデプロイすると、デプロイしたアプリと合わせて、requirements.txt ファイルで指定した依存関係が自動的にインストールされます。Linux 対応の任意の Python パッケージを利用できます。これにはネイティブの C 拡張機能を必要とするパッケージも含まれます。

デフォルトでは、App Engine は取得した依存関係をキャッシュに保存し、ビルド時間を短縮します。キャッシュに保存されていないバージョンの依存関係をインストールするには、次のコマンドを使用します。

gcloud beta app deploy --no-cache

プライベート依存関係

依存関係は、SSH キーにはアクセスできない Cloud Build 環境にインストールされます。SSH ベースの認証を必要とするリポジトリでホストされているパッケージは、プロジェクト ディレクトリにコピーし、pip パッケージ マネージャーを使用してプロジェクト コードと一緒にアップロードする必要があります。

プライベート依存関係を使用するには:

  1. pip install -t lib my_module を実行して、lib というローカル フォルダに依存関係をコピーします。

  2. 空の __init__.py ファイルを lib ディレクトリに追加して、モジュールに変換します。

  3. モジュールをアプリにインポートします。次に例を示します。

    import lib.my_module
    

依存関係をローカルにインストールする

アプリケーションをローカルで開発してテストする場合、アプリケーションの依存関係をシステム パッケージから分離するために、virtualenv を使用することを強くおすすめします。これは、依存関係がローカルマシンとデプロイしたアプリケーションと同じバージョンであることも確保します。

virtualenv を使用して依存関係をインストールするには、次の手順を実行します。

Mac OS / Linux

  1. virtualenv がインストールされていない場合は、pip を使用してシステム全体にインストールします。
    sudo pip install virtualenv
  2. プロジェクトの外部のディレクトリに分離孤立した Python 環境を作成し、それを有効化します。
    virtualenv env
    source env/bin/activate
  3. プロジェクト ディレクトリに移動し、依存関係をインストールします。
    cd YOUR_PROJECT
    pip install  -r requirements.txt

Windows

PowerShell を使用して Python パッケージを実行します。

  1. インストールされた PowerShell を探します。
  2. PowerShell へのショートカットを右クリックし、管理者として PowerShell を起動します。
  3. virtualenv がインストールされていない場合は、pip を使用してシステム全体にインストールします。
    pip install virtualenv
  4. プロジェクトの外部のディレクトリに分離孤立した Python 環境を作成し、それを有効化します。
    virtualenv env
    env\Scripts\activate
  5. プロジェクト ディレクトリに移動し、依存関係をインストールします。
    cd YOUR_PROJECT
    pip install -r requirements.txt

これにより、アプリをローカルで実行するときに、requirements.txt ファイルで宣言されている依存関係のみが使用できるようになります。デプロイ中に App Engine によってインストールされた依存関係は、env/ ディレクトリの内容ではなく、requirements.txt ファイルの内容に基づきます。

ヒント: 多くの場合、正確な依存関係はわかりません。virtualenv と pip ツールで依存関係をインストールして pip freeze を使用すると、すべてのインストール済みパッケージの名前とバージョンを requirements.txt ファイルに書き込むことができます。

ウェブ フレームワークのインストール

ウェブ リクエストに対応できるようにするには、ウェブ フレームワークを使用する必要があります。以下を含む任意の Python ウェブ フレームワークを使用できます。

特定のウェブ フレームワークを使用するには、requirements.txt に追加するだけです。

Flask==0.10.1

WSGI サーバーをインストールする

組み込み WSGI サーバーが搭載されたウェブ フレームワークがありますが、本番トラフィックの処理に適しているのは少数です。大部分のウェブ アプリケーションは、GunicornuWSGIWaitress などのスタンドアロン WSGI サーバーを使用します。WSGI サーバーのインストール、構成、使用方法については、アプリケーションの起動をご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python 3 の App Engine スタンダード環境