我有一个项目,其文件夹结构如下:
div
main.go的内容是:
/project
models/
Product.go
main.go
Product.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")
}
我从键入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:: can't find import: "github.com/gin-gonic/gin"
时,~/project
可以按预期工作。
我使用go1.5.3。
任何人都可以帮助我。感谢。
答案 0 :(得分:2)
Relative import paths仅允许作为方便,主要用于实验。 or
和go build
并未完全支持它们。如果您希望您的包使用go install
工具,请不要使用相对导入。按照How to Write Go Code。
答案 1 :(得分:-1)
当您在代码中使用“github.com/gin-gonic/gin”时。这是一个外部进口。所以go编译器会尝试在你的工作区中找到这个包。因此,您需要在go工作区或构建路径中手动下载这些软件包 “go get github.com/gin-gonic/gin”。