【Go Modules】build command-line-arguments: cannot find module for path のエラーの対応方法

Go

Go Modulesでエラーが発生

元々Go Modulesを使用せずに開発を進めていて、Go Modulesを導入した段階でエラーが出たので、簡単なことですが、Goはたまにしか触らないため、備忘録として残しておきます。

発生したエラー

以下のような感じでエラーになりました。

build command-line-arguments: cannot find module for path _/Users/kou/Documents/git/...

原因

対象パスのモジュールが見つからないため発生していました。

自分の場合は、Go Modulesを使用するように切り替えた時に、元々相対パスimportしていた部分が原因でした。

解決方法

go.modを修正する

github.com/user-name/project-nameとなるように修正する。

go.mod

module github.com/user-name/project-name

go 1.13

require (
)

プログラムを修正する

相対パスで読み込んでいるところを修正する。

正しくgo.modで設定されている場合は、importは自動補完できるので、自動補完を利用すると、ミスがないし良い。

ディレクトリなどを修正した場合も、importしている部分を削除して、自動補完させれば簡単に修正できる。

package main

import (
    // 相対パスはダメ!!
    // infrastructure "./infrastructure"

    // こんな感じでimportする
    // 一度削除して、自動補完しちゃえばラク
	"github.com/user-name/project-name/infrastructure"
)

func main() {
	...
	infrastructure.SampleFunc()
}

参考サイト

オススメの関連商品

Note一覧

コメント