Python 3.9 が一般提供になりました。

依存関係の指定

依存関係の宣言と管理

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

Flask==0.10.1
google-cloud-storage

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
    

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

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

venv を使用して依存関係をインストールする手順は次のとおりです。

Mac OS / Linux

  1. 分離された Python 環境を作成します。
    python3 -m venv env
    source env/bin/activate
  2. 現在のディレクトリにサンプルコードが含まれていない場合は、hello_world サンプルコードが含まれるディレクトリに移動します。その後、依存関係をインストールします。
    cd YOUR_SAMPLE_CODE_DIR
    pip install -r requirements.txt

Windows

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

  1. インストールされた PowerShell を探します。
  2. PowerShell へのショートカットを右クリックし、管理者として PowerShell を起動します。
  3. 分離された Python 環境を作成します。
    python -m venv env
    .\env\Scripts\activate
  4. プロジェクト ディレクトリに移動し、依存関係をインストールします。現在のディレクトリにサンプルコードが含まれていない場合は、hello_world サンプルコードが含まれるディレクトリに移動します。その後、依存関係をインストールします。
    cd YOUR_SAMPLE_CODE_DIR
    pip install -r requirements.txt

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

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

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

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

Flask==0.10.1

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

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