Golang Cafe #0(準備編)

2013/10/27に開催された「Golang Cafe #1」に参加しました。
Go言語については数年前のGoogle先生の宿題以来ほとんど触っていなかったので、
#1の纏めに先立って環境準備について纏めておこうと思います。

ゴール

環境

Windows7 SP1 64bit

Go言語ツールのインストール

ダウンロードとインストール

こちらからMSIインストーラ版またはzip圧縮版をダウンロードします。
32bit版、64bit版と用意されているので今回はgo1.1.2.windows-amd64.zipを使います。
MSIインストーラ版は実行するだけで環境変数の設定まで行ってくれます。

ダウンロードしたzipを適当な場所に解凍します。今回インストール先はc:\Goとします。

環境変数の設定

GOROOT:インストール先のディレクトリ(今回の場合はc:\Go)
またPATHにc:\Go\binディレクトリを追加します。

動作確認

以下のプログラムをhello.goという名前で作成します。

package main

import "fmt"

func main() {
    fmt.Printf("Hello, world!\n")
}

goツールで実行し、以下のように出力されればOKです。

$ go run hello.go
Hello, world!

Google App Engine SDK for Goのインストール

Pythonのインストール

Google App Engine SDK for GoではPythonが必要になります。
Windows環境ではデフォルトでPythonはインストールされていないので、こちらから2.7系をダウンロードしてインストールします。(※レフトナビのQuick Linksは32bit版なので注意が必要です)
Python環境変数PATHへの追加が必要なのでインストールしたディレクトリC:\Python27を追加します。

App Engine SDKのインストール

こちらからApp Engine SDKをダウンロードします。
32bit版、64bit版と用意されているので今回はgo_appengine_sdk_windows_amd64-1.8.6.1.zipをダウンロードします。
ダウンロードしたzipを適当な場所に解凍します。今回インストール先はc:\go_appengineとします。

環境変数の設定

PATHにc:\go_appengineディレクトリを追加します。

動作確認

myappディレクトリを作成し、その直下にhelloディレクトリを作成します。
helloディレクトリの直下に以下のプログラムをhello.goという名前で作成します。

package hello

import (
    "fmt"
    "net/http"
)

func init() {
    http.HandleFunc("/", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello, world!")
}

また、myappディレクトリ直下に以下の内容でapp.yamlファイルを作成します。

application: helloworld
version: 1
runtime: go
api_version: go1

handlers:
- url: /.*
  script: _go_app

ディレクトリ構成は以下のようになっているはずです。

myapp/
  app.yaml
  hello/
    hello.go

以下のコマンドで開発サーバーを起動し、http://localhost:8080/にブラウザ等でアクセスします。

$ dev_appserver.py myapp/

Hello, world!とレスポンスがあればOKです。


以上でGolang Cafeへ向けての準備は完了です。