質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

2575閲覧

Go、ローカルのサーバー立ち上げについて

xxyyxx

総合スコア40

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2018/01/29 08:28

Go初心者です。
Go言語をひとまずローカルで動かしてみようと思い、以下の記事を参考に進めていきました。
(URL: https://qiita.com/ryutah/items/eff6a044c81c5ba109d0)

export GOPATH=$HOME/go export PATH=$GOPATH/bin:$PATH

プロジェクト構成:

/Users/<名前>/go/src/github.com/<github名>/gotest/ ├── Gopkg.lock ├── Gopkg.toml ├── Makefile ├── README.md ├── app │   ├── app.yaml │   └── main.go ├── gae │   └── hello.go └── vendor └── github.com ├── gorilla └── ryutah

gvm+depのツールを使っています。

app配下にて、以下のコマンドを実行するとサーバーは立ち上がるのですが、こんなエラーメッセージがでます。

$ goapp serve -port 8741 app.yaml

ERROR 2018-01-29 08:04:43,822 instance_factory.py:196] Failed to build Go application: (Executed command: /usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/goroot-1.8/bin/go-app-builder -app_base /Users/<名前>/go/src/github.com/<github名>/gotest/app -api_version go1.8 -arch 6 -dynamic -goroot /usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/goroot-1.8 -gopath /usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/gopath -nobuild_files ^^$ -incremental_rebuild -unsafe -binary_name _go_app -extra_imports appengine_internal/init -work_dir /var/folders/bh/rrhyyn410hn6stjvxsjcl8sw0000gn/T/tmp2vow5iappengine-go-bin -gcflags -I,/usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/goroot-1.8/pkg/darwin_amd64_appengine -ldflags -L,/usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/goroot-1.8/pkg/darwin_amd64_appengine main.go)

/var/folders/bh/rrhyyn410hn6stjvxsjcl8sw0000gn/T/tmp2vow5iappengine-go-bin/main.go:6: can't find import: "github.com/gorilla/mux"

2018/01/29 17:04:43 Can't find package "github.com/gorilla/mux" in $GOPATH: cannot find package "github.com/gorilla/mux" in any of:

/usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/goroot-1.8/src/github.com/gorilla/mux (from $GOROOT) /usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/gopath/src/github.com/gorilla/mux (from $GOPATH)

2018/01/29 17:04:43 Can't find package "github.com/ryutah/gae-structure-sample/gae" in $GOPATH: cannot find package "github.com/ryutah/gae-structure-sample/gae" in any of:
/usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/goroot-1.8/src/github.com/ryutah/gae-structure-sample/gae (from $GOROOT)
/usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/gopath/src/github.com/ryutah/gae-structure-sample/gae (from $GOPATH)
2018/01/29 17:04:43 go-app-builder: build timing: 0×skip (0s total), 1×compile (16ms total), 0×link (0s total)
2018/01/29 17:04:43 go-app-builder: failed running compile: exit status 2

main.goで定義しているパッケージのパスが間違っているのかと、調整し色々と試してみたのですが、
エラーが変わらずで。。。

どなたかご教示頂けないでしょうか??
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラー内容を見る限りだと、GOPATHが想定と異なる状態でgoappコマンドが実行されてしまっているように見えます。

/usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/gopath/

goappコマンドのサブコマンドとしてenvというのがあるはずなので、goapp実行時のGOPATH環境変数の扱われ方を一度確認してみてください。

goapp env GOPATH

go getでパッケージを入れずにgoapp getでGAE用にパッケージをインストールしておくとエラーが出なくなったりしないでしょうか?

投稿2018/01/29 10:27

ike-dai

総合スコア45

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xxyyxx

2018/01/29 11:07

アドバイスありがとうございます! こちら、やはりgoapp get (goapp get ./...)をプロジェクトディレクトリで実行したらできました!! 大変助かりました。 これを実行することで(goapp get ./...)何が行われたのかまだ理解していないので、 理解してみようと思います!! ありがとうございます!
mattn

2018/01/29 23:58

goapp get ./... はカレントディレクトリ配下のソースファイルが使っているパッケージをローカルに取得するコマンドです。
xxyyxx

2018/01/30 05:43

度々申し訳ないのですが、、 昨日で"Hello world"とブラウザで表示され、機能させることができました。 ここで、"Hello world"という文字を変更しようかと思い、/gae/hello.goを編集。しかし、文字はそのまま。 vender配下のvendor/github.com/ryutah/gae-structure-sample/gae/hello.goを編集。しかし、文字はやはり"Hello world"のまま。 /usr/local/Cellar/app-engine-go-64/1.9.61/share/app-engine-go-64/gopath/src/github.com/ryutah/gae-structure-sample/gae/hello.go こちらを編集したら、文字の変更が反映。 この挙動って正常でしょうか? もしコメントでなければ、新規の質問作りますのでご教示頂けないでしょうか、、
xxyyxx

2018/01/30 05:52

認識としてはnodeのnpmで生成される、node_moduleフォルダみたいなイメージなのですがあっていますでしょうか?
mattn

2018/01/30 07:12

はい。node_module と同じ様な物なので、vendor の中は触ってはいけません。
xxyyxx

2018/01/30 07:17

ご回答ありがとうございます! /gae/hello.go なのですが、こちらのファイルの意義ってなんなのでしょうか?、、 このファイルを変更しても(例えば"Hello world")変更が反映されないので、なんのためにあるのだろうかと思いまして、、 まだ大分知見が足りず、不足な質問ですが、、教えて頂けないでしょうか、、
mattn

2018/01/30 08:13

GOPATH の中で作業されておられないから反映されないのだと思います。
xxyyxx

2018/01/30 08:48

なるほど、ありがとうございます。 そうなると、本来であれば(GOPATHの中であれば)gae/hello.go編集して色々コード書いていくかんじになるのですね。
xxyyxx

2018/01/30 08:57

GOPATHの変更が必要なのか、他に良い方法がないか検討してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問