Pycharmで簡易的なGoogle App Engine Python3.7対応

Google App Engine ( GAE ) の Standard Environment において Python 3.7 が正式に対応されました。Pycharm では GAE に対応した編集も行うことができますが、自分自身での設定が必要です。また、Pycharm Professional では以前より GAE に対応した機能がありましたが、これも Python 2.7 にしか対応していません。
そこで今回は、簡易的にPython 3.7 に対応した設定を紹介したいと思います。
(ローカル環境でCloud Datastoreなどの利用が必要な場合は適しません。)

本記事では、

  •  Pycharm
  •  Python 3.7
  •  Cloud SDK

がインストールされているものとし説明します。また以下の説明では Pycharm Professional を用いていますが、Pychram Community でも問題ないものと思われます。適宜置き換えてください。

プロジェクトの準備

プロジェクトを準備するとき、これまで Pycharm Professional を利用していた方であれば、テンプレートにGoogle App Engineを選択していたと思います。しかし、これはPython 2.7でなければエラーが表示されてしまうため、ここではPure Pythonを選択します。エンジンにはPython3.7を選択しましょう。

今回ビルド・実行するプロジェクトは、Google App Engineのチュートリアルで用いられているHello Worldを使います。
https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard_python37/hello_world

main.pyは次のようになります。

またapp.yamlは次の通りです。

requirements.txtもありますので、事前にインストールを済ませておきましょう。

ローカル環境での実行

ローカルで実行するには、通常次のコマンドが利用されます。

毎回入力するのは面倒ですので、これを「Edit Configurations …」より「Run / Debug」に登録します。
登録方法は次の通りです。

設定は「Python」を選択します。

  • Script path … main.py

これで実行すると、アクセス可能なアドレスが表示されますので、そちらを表示し動作を確認してください。

Google App Engineへのデプロイ

従来のPycharmであれば、appengineを利用しデプロイしていましたが、ここではgcloudを利用します。コマンドは次の通りです。

これも「Run / Debug」に登録しましょう。
登録方法は次の通りです。

設定は「Bash」を選択します。

  • Script … app
  • Interpreter path … gcloudのパス (Windowsの例: C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gcloud.cmd)
  • Program arguments … deploy –project –version 1 –no-promote –quiet

これで実行すると、2~3分でデプロイが完了します。詳細なログが表示されませんが、気長に待ってください。

まとめ

以上がPycharmでGoogle App Engineへのデプロイの簡易的な方法でした。冒頭でも述べましたように、この方法だとローカル環境でCloud Datastoreなど、Goofleが用意している固有のサービスのデバッグは行うことができません。(Cloud SQLであれば、ローカルにDBを用意することで代用可能です。)そのあたりに注意してご利用ください。

» お仕事のご依頼はこちら