はじめに
golangを開発していて、go get
コマンドなどでライブラリなどを入れた場合にこんなエラーが出ることがあります。
2017/01/16 14:00:33 go-app-builder: Failed parsing input: parser: bad import "syscall" in src/golang.org/x/tools/cmd/heapview/internal/core/mmapfile.go
原因
参考にしたサイトからそのまま引用させて頂きますが、以下のような場合に起こるらしいです。
GAE/Go では syscall や unsafe パッケージのインポートが許されていない。 たとえばプロジェクトルート以下に vendor ディレクトリを作っていて、 その下に置いたサードパーティ製のライブラリがこれら利用不可のパッケージを利用していた場合、 アプリケーションから利用していなくても開発サーバの起動やデプロイができなくなることになる。
go get
コマンドでライブラリを入れたり、
自分の場合はvimでgo環境を整えるためにvim-go
の:GoInstallBinaries
を行ったあとに起こりました。
※ direnvでGOPATHを変えてたからなど起こった原因は自分環境のせいではありますが...
対応方法
こちらも参考サイトに書かれていますが、
app.yaml
にnobuild_files
という項目を追記してbuild対象から外してやる事でエラーがでなくなりました。
- 例
nobuild_files: - src/gopkg.in - src/golang.org - src/github.com
参考似させて頂いたサイト
おわり
ちょっとしたことでハマると数時間あっというまですね\(^o^)/