go - 导入包时如何在 GOPATH 中搜索包?
问题描述
package main
import (
"fmt"
"controller/userhandler" //not able to import this custom package
"github.com/gin-gonic/gin"
"net/http"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
)
func main(){
}
下面的代码显示 Go 只在 GOROOT 中搜索包。controller/userhandler
在GOROOT中找不到之后,理想情况下,它应该在GOPATH中查找包,但它没有。
我已经将GOPATH设置为我的工作区路径,其中包括以下文件夹:bin
、src
和pkg
.
$ go build main.go
main.go:5:2: package controller/userhandler is not in GOROOT (/usr/local/go/src/controller/userhandler)
解决方案
运行go mod init MODULE_NAME
(如果项目在GOROOT或GOPATH之外)或只是简单地go mod init
(如果项目在GOROOT 或 GOPATH内)。该命令应在项目的根文件夹中运行。这将创建一个go.mod
文件,使go能够解析您的包。
推荐阅读
- c++ - 为什么“新”只创建一个对象而不是一组对象?
- javascript - 是否有示例显示如何通过 websockets 发送图像?
- snowflake-cloud-data-platform - 找出雪花过程中引用的对象列表
- php - 为什么 ob_flush 在 apache localhost 上工作而不是远程工作?
- r - 如何在具有可反应的数字参数的同一向量中引入非数字参数?
- css - 如何在 tailwind-css 中自定义容器宽度?
- mysql - JSON_EXTRACT 在存储过程中总是返回 null
- python - Python-docx:ValueError:要解包的值太多(预期为 2)
- vb.net - Microsoft Graph SendMail 返回 ErrorInternalServerError
- azure - 获取 azure 订阅属于什么类型,例如 Pay As you Go、MCA、EA、CSP