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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Go

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

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Q&A

解決済

1回答

2256閲覧

Google App Engine SDK for Goでwebアプリケーションを作成の際のパッケージの読み込み方

kstyle

総合スコア13

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Go

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

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

0グッド

0クリップ

投稿2018/02/07 07:23

編集2018/03/22 04:05

前提・実現したいこと

発生している問題・エラーメッセージ

App Engineのローカル開発サーバーを実行し以下のエラーが発生

go-app-builder: Failed parsing input: app file server.go conflicts with same file imported from GOPATH

該当のソースコード

ディレクトリ構成

├── dev($GOPATH) │   ├── pkg │   ├── src │   │   └── github.com │   │   └── project │   │   ├── Gopkg.lock │   │   ├── Gopkg.toml │   │   ├── service │   │   │   ├── app.go │   │   │   ├── app.yaml │   │   │   └── server │   │   │   └── server.go │   │   └── vendor

app.yaml

application: myapp version: 1 runtime: go api_version: go1.8 default_expiration: "1d" handlers: - url: /.* script: _go_app secure: always nobuild_files: vendor/

project/service/app.go

package app import ( "github.com/labstack/echo" "./server" ) func init() { e := echo.New() e.GET("/hello", server.MainPage()) e.Start(":8080") }

project/service/server/server.go

package server import ( "log" ) func Hello() { log.Print("Hello world!") }

試したこと

以下をapp.yamlに追加しコマンドを再実行

nobuild_files: vendor/

% dev_appserver.py app.yaml

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

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

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

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

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

m0a

2018/02/08 23:33

githubに環境を置けばテストしてもらえるのではないでしょうか?
kstyle

2018/02/08 23:45

ありがとうございます。githubにも置いてみます。
guest

回答1

0

ベストアンサー

AppEngine のデプロイでは以下のファイルがアップロードされます。

  • app.yaml のあるディレクトリと、そのサブディレクトリ
  • import されている各種パッケージ

server.go は、上記の両方に該当するため(2重でアップロードされ?)エラーが発生していると思われます。

上記の構成例での app.go から import するファイルは、その外側にディレクトリに配置するのがよいと思います。この場合では src/github.com/project/server/server.go にすれば、エラーにならないかと思います。

投稿2018/02/09 05:41

najeira

総合スコア28

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

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

kstyle

2018/02/09 05:46

serverという名前のパッケージがvendor内の各種パッケージ内に存在するからエラーになっていて、 被らない様名前付をするか回答の様にパスを書いた上で読み込むかすれば大丈夫ということですね。 ありがとうございます。
najeira

2018/02/09 05:56 編集

いえ「server というパッケージが vendor 内にあるから」というのではなく、「app.yaml以下にあるファイルをアップロード」「そこから import されているファイルをアップロード」の結果、同じファイルがアップロードされるからです。 なので、解決策としては、回答に書いたとおり「serverをserviceの外に置く」です。
kstyle

2018/02/09 05:58

失礼しました。そういうことですね。 試してみます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問