Go の新しいモジュール システムを試していますが、ローカル パッケージにアクセスできません。次のプロジェクトは、gopath 外のデスクトップ上のフォルダーにあります。
私のプロジェクト構造は次のようになります。
/
- /platform
- platform.go
- main.go
- go.mod
// platform.go
package platform
import "fmt"
func Print() {
fmt.Println("Hi")
}
// main.go
package main
import "platform"
func main() {
platform.Print()
}
go build main.go
私に言う
cannot find module for path platform
ベストアンサー1
まずこれを定義しましょう。これmodules
はのコレクションですpackages
。Go 11では、移動モジュール次のようにします。
両方のパッケージが同じプロジェクト内にある場合は、次のように実行できますgo.mod
。
module github.com/userName/moduleName
そしてあなたの中にmain.go
import "github.com/userName/moduleName/platform"
packages
ただし、それらが別々のモジュール、つまり異なる物理パスであり、たとえばこれをリモートで github に公開せずにローカルにインポートしたい場合は、replace
ディレクティブを使用してこれを実現できます。
モジュール名が でgithub.com/otherModule
、platform
と指定されている場合、その中には が唯一のパッケージです。メイン モジュールにgo.mod
次の行を追加します。
module github.com/userName/mainModule
require "github.com/userName/otherModule" v0.0.0
replace "github.com/userName/otherModule" v0.0.0 => "local physical path to the otherModule"
注: パスはモジュールのルート ディレクトリを指す必要があり、絶対パスでも相対パスでもかまいません。
内でmain.go
、 のような特定のパッケージをインポートするには、platform
次のようにしますotherModule
。
import "github.com/userName/otherModule/platform"
こちらは優しい紹介Golangモジュールへ