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

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

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

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

Q&A

解決済

1回答

1607閲覧

Go Modulesで自分で作成したパッケージの読み込みを行う。

2_34_koki

総合スコア67

Go

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

0グッド

0クリップ

投稿2021/04/10 02:48

普段はフロントエンド開発をしているGo初心者です。
Go Modulesを利用して$GOPATH以外で作業しようとしたところ、作成したパッケージの読み込みでエラーが出てしまうので質問させて頂きました。
発生している問題は下記です。

============================

  1. ~/WorkSpace/Study/golang/ (これは$GOPATHの外)で作業
  2. フォルダ構成は下記の通り
---- main.go | |---handler | |--- handler.go
  1. go mod init で初期化
  2. go get を実行 (ここでエラー)
go: downloading github.com/labstack/echo/v4 v4.2.2 golang imports golang/hanlder: package golang/hanlder is not in GOROOT (/usr/local/go/src/golang/hanlder)

他のサイト等を見ても、go mod init workDirで解決しているみたいで、あまり参考になりませんでした。
解決策をご存知の方はよろしくお願いします

(追記) コード

package main import ( "github.com/labstack/echo/v4" "net/http" "golang/hanlder" ) func main() { e := echo.New() e.GET("/healthcare", func(c echo.Context) error { return c.String(http.StatusOK, "OK") }) e.GET("hello", handler) }
package handler import ( "github.com/labstack/echo/v4" "net/http" ) func Hello() echo.HandlerFunc { return func(c echo.Context) error { return c.String(http.StatusOK, "Hello World") } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

Go Modulesモードで動作させるとき、インポートするパッケージ名は go.mod に記載された モジュール名からの絶対パス を指定する必要があります。

  • ディレクトリ構成
. ├── go.mod ├── go.sum ├── handler │   └── handler.go └── main.go
  • go.mod
module hoge go 1.16 require github.com/labstack/echo/v4 v4.2.2 // indirect

となっているとすると

  • main.go

go

1package main 2 3import ( 4 "hoge/handler" <- これがポイント 5 "net/http" 6 7 "github.com/labstack/echo/v4" 8) 9 10func main() { 11 e := echo.New() 12 13 e.GET("/healthcare", func(c echo.Context) error { 14 return c.String(http.StatusOK, "OK") 15 }) 16 17 e.GET("hello", handler.Hello()) 18}

import するパスは "hoge/handler" となります。

投稿2021/04/10 03:19

d_tutuz

総合スコア730

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問