我有一个项目,它的文件夹结构如下:
/project
models/
Product.go
main.go
main.go的内容是:
package main
import (
"./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 models
type 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::找不到导入:“github.com/gin-gonic/gin”
。
但是当项目目录的位置是~/project
时,go run main.go
可以正常运行。
我用的是go1.5.3。
谁能帮帮我。谢谢。
最佳答案
Relative import paths只允许作为一种方便,主要是为了实验。 go build
和 go install
不完全支持它们。如果您希望您的包与 go
工具一起使用,请不要使用相对导入。按照 How to Write Go Code 中的描述构建您的代码.
关于Golang - 为什么我不能在 GOPATH/src/project 中导入本地包,但可以在主目录中导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34815455/