我对Golang有一些关于导入本地软件包的问题。这是我的项目结构home/src/github.com/username/project1|main.go|go.mod├── handlers│ ├── handlers.go├── usecases| ├─ ...|...我go.modmodule project1go 1.16我main.gopackage mainimport ( "fmt" "net/http" "project1/handlers/handlers")func main() { http.HandleFunc("/", handlers.Greet) http.ListenAndServe(":8080", nil)}我handlers/handlers.gopackage handlersimport ( "net/http" "fmt")func Greet(w http.ResponseWriter, r *http.Request) { //Do stuff}我正在GOPATH之外构建这个,我正在使用go 1.16。C:\users\...\go在阅读了一些来源之后,说我只能使用模块名称和包的路径来导入包,我使用此行将包导入到包。handlersmainimport "project1/handlers/handlers"但是当我尝试运行它时,这将返回此错误。package project1/handlers/handlers is not in GOROOT (C:\...\project1/handlers/handlers)然后我尝试更改一些东西,例如将我的模块名称和导入路径都更改为此//module name in go.modmodule github.com/username/project1//import path in main.goimport "github.com/username/project1/handlers/handlers"但是然后它返回错误,说我需要首先获取包,当我尝试使用该命令获取它时,或者只是返回错误,因为我没有推送/发布这个项目,我不打算这样做。go get github.com/username/project1/handlers/handlersgo mod tidyrepository not found那么,我在这里犯的问题/错误是什么?我必须先发布项目,然后才能导入自己的本地包吗?我是否错过了一些配置?每一个帮助都是值得赞赏的。
1 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
我在导入路径中放置了太多的路径,它应该停在目录而不是包上。因此,通过将导入路径更改为
import "project1/handlers"
//rather than
import "project1/handlers/handlers"
修复了问题。谢谢!
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消