在Go語言中,要導(dǎo)入本地包可以通過使用相對或絕對路徑的方式進(jìn)行。首先,確保你的本地包已經(jīng)按照Go語言的規(guī)范進(jìn)行了目錄結(jié)構(gòu)的組織。然后,在你的Go文件中,使用import關(guān)鍵字導(dǎo)入包的路徑。當(dāng)導(dǎo)入本地包時,可以使用相對路徑或絕對路徑。如果你的包在同一個目錄下,可以使用相對路徑導(dǎo)入,例如import “./utils”。如果你的包在不同的目錄下,可以使用絕對路徑導(dǎo)入,例如import “github.com/username/package/utils”。通過這樣的方式,你就可以成功導(dǎo)入本地包,使用其中的函數(shù)和變量了。
問題內(nèi)容
我是新來的,正在處理我想要本地化的示例代碼。
在原來的 main.go import 語句中它是:
import (
"log"
"net/http"
"github.com/foo/bar/myapp/common"
"github.com/foo/bar/myapp/routers"
)
登錄后復(fù)制
現(xiàn)在我在 /home/me/go/src/myapp 中有 common 和 routers 包
所以我將導(dǎo)入語句轉(zhuǎn)換為:
import (
"log"
"net/http"
"./common"
"./routers"
)
登錄后復(fù)制
但是當(dāng)我運(yùn)行 go install myapp 時,我收到以下錯誤:
can't load package: /home/me/go/src/myapp/main.go:7:3: local import "./common" in non-local package
登錄后復(fù)制
另外,當(dāng)我在導(dǎo)入語句中使用 common 和 routers 而不是 ./common 和 ./routers 時,我得到:
myapp/main.go:7:3: cannot find package "common" in any of:
/usr/local/go/src/common (from $GOROOT)
/home/me/go/src/common (from $GOPATH)
myapp/main.go:8:2: cannot find package "routers" in any of:
/usr/local/go/src/routers (from $GOROOT)
/home/me/go/src/routers (from $GOPATH)
登錄后復(fù)制
我該如何解決這個問題?
解決方法
嗯,我解決了這個問題。
基本上Go導(dǎo)入的起始路徑是$HOME/go/src
所以我只需要在包名前面添加 myapp 即可,即導(dǎo)入應(yīng)該是:
import (
"log"
"net/http"
"myapp/common"
"myapp/routers"
)
登錄后復(fù)制






