为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我不能在 GOPATH/src/project 中导入本地包但可以在主目录中?

为什么我不能在 GOPATH/src/project 中导入本地包但可以在主目录中?

Go
www说 2021-12-07 10:36:55
我有一个项目,它的文件夹结构如下:    /project        models/            Product.go        main.gomain.go 的内容是:package mainimport (    "./models"    "fmt"    "github.com/gin-gonic/gin")func main() {    r := gin.Default()    fmt.Println(models.Product{})    r.GET("/", func(c *gin.Context) {        c.String(200, "he")    })    r.Run(":3000")}Product.go 的内容是:package modelstype Product struct {    Name string}我从打字中得到的go env是:GOARCH="amd64"GOBIN=""GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="darwin"GOOS="darwin"GOPATH="/Users/Mac/go"GORACE=""GOROOT="/usr/local/Cellar/go/1.5.3/libexec"GOTOOLDIR="/usr/local/Cellar/go/1.5.3/libexec/pkg/tool/darwin_amd64"GO15VENDOREXPERIMENT=""CC="clang"GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -    fmessage-length=0 -fno-common"CXX="clang++"CGO_ENABLED="1"当项目目录的位置是$GOPATH/src/project,如果我运行go run main.go,我得到的是这个错误信息:./main.go:: can't find import: "github.com/gin-gonic/gin"。但是当项目目录的位置为 时~/project,go run main.go可以按预期工作。我使用 go1.5.3。谁能帮我。谢谢。
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

相对导入路径只是为了方便起见,主要用于实验。他们不是完全支持go buildgo install。如果您希望您的包与go工具一起使用,请不要使用相对导入。按照如何编写 Go代码中的描述构建您的代码。


查看完整回答
反对 回复 2021-12-07
?
萧十郎

TA贡献1815条经验 获得超12个赞

当您在代码中使用“github.com/gin-gonic/gin”时。它是外部导入。所以 go 编译器会尝试在你的工作区中找到这个包。因此,您需要在 go 工作区或构建路径“go get github.com/gin-gonic/gin”中手动下载这些包。


查看完整回答
反对 回复 2021-12-07
  • 2 回答
  • 0 关注
  • 262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信