読者です 読者をやめる 読者になる 読者になる

tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【go】golang環境でFailed parsing input: parser: bad import "syscall" というエラーが出るときのメモ

はじめに

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.yamlnobuild_filesという項目を追記してbuild対象から外してやる事でエラーがでなくなりました。

nobuild_files:
    - src/gopkg.in
    - src/golang.org
    - src/github.com

参考似させて頂いたサイト

おわり

ちょっとしたことでハマると数時間あっというまですね\(^o^)/