在 Go 中导入本地包
在 Go 中使用本地化代码时,导入本地包有时会遇到挑战。以下是对常见问题及其解决方案的详细分析:
问题:
尝试本地化位于“/home/me/ 的包的导入语句” go/src/myapp”,进行了以下更改:
import ( "./common" "./routers" )
但是,在运行“go install myapp,”出现以下错误:
can't load package: /home/me/go/src/myapp/main.go:7:3: local import "./common" in non-local package
此外,使用不带“./”前缀的“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)
解决方案:
问题源于 Go 的导入路径约定。 Go 的导入起始目录是“$HOME/go/src”。要解决此问题,只需在导入语句中的包名称中添加“myapp”前缀即可:
import ( "log" "net/http" "myapp/common" "myapp/routers" )
此修改可确保导入路径正确,并将解决编译期间遇到的错误。
以上是Go中如何正确导入本地包?的详细内容。更多信息请关注PHP中文网其他相关文章!