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

无法导入 gorilla/mux

无法导入 gorilla/mux

Go
尚方宝剑之说 2022-06-01 15:52:26
在 Go 中,我尝试了简单的数据库连接。我需要导入gorilla/mux,但我不能。我正在使用 VS 代码。进入cd我的项目目录后,我创建main.go并运行了 go get -u github.com/gorilla/mux这是main.gopackage mainimport (    "database/sql"    "fmt"    "github.com/gorilla/mux"    _ "github.com/lib/pq")const (    host     = "localhost"    port     = 3000    user     = "postgres"    password = "postgres"    dbname   = "test1")func main() {    psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+        "password=%s dbname=%s sslmode=disable",        host, port, user, password, dbname)    db, err := sql.Open("postgres", psqlInfo)    if err != nil {        panic(err)    }    defer db.Close()    err = db.Ping()    if err != nil {      panic(err)    }    fmt.Println("Successfully connected!")}[注意,执行go get -u github.com/gorilla/mux终端显示后C:\Go\src\github.com\IamFrost\go-rest-api>go get -v -u github.com/gorilla/muxgo: golang.org/x/text upgrade => v0.3.2go: golang.org/x/crypto upgrade => v0.0.0-20200429183012-4b2356b1ed79go: golang.org/x/sys upgrade => v0.0.0-20200430082407-1f5687305801go: golang.org/x/net upgrade => v0.0.0-20200425230154-ff2c4b7c35a0go: downloading golang.org/x/sys v0.0.0-20200430082407-1f5687305801golang.org/x/sys/cpugolang.org/x/crypto/chacha20poly1305crypto/tls]看我在迷你地图中没有其他语法错误。在红色标记处,当我放鼠标时,悬停文本对我来说很有趣:1)imported but not used但下一行2) no package for import github.com/gorilla/mux)大声笑这不是违背 1) 吗?有人请解释为什么会这样然而,go build在终端中使用后这是终端:C:\Go\src\github.com\IamFrost\go-rest-api>go buildgo: inconsistent vendoring in C:\Go\src:        github.com/gorilla/mux@v1.7.4: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt        github.com/lib/pq@v1.4.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt        golang.org/x/crypto@v0.0.0-20200429183012-4b2356b1ed79: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt所以有人指出我为什么我不能导入gorilla/mux或pq.我还需要做什么?(请解释一下这是什么意思?is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt)
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

这是我为我修复它的方法:

go get ./...
go mod vendor

如果您的 Go 版本低于该版本1.13,则应GO111MODULE=on 在上述命令中添加前缀。


查看完整回答
反对 回复 2022-06-01
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

我不知道它为什么有效(我是初学者)。我在网上找到了一些东西,不知何故它起作用了。方法如下:

1)这是我的 go 目录C:\Go\。但是我在我的桌面文件夹中创建了项目

2)然后我在 C:\Go\src 下重新创建了项目(这是确切的文件夹 C:\Go\src\github.com\ [github_username]\ [project_name] )

3)然后我将所有代码粘贴在main.go

4)最后从终端go mod vendor

5)然后go build

6)然后go run main.go

7)终于成功了

[我想知道它为什么起作用。我真的很感激你的评论:关于他们为什么强迫我破产C:\Go\src。我已经在环境变量中设置了GOPATH C:\Go\GOBIN ] C:\Go\bin


查看完整回答
反对 回复 2022-06-01
?
喵喔喔

TA贡献1735条经验 获得超5个赞

在最近发布的 Golang(我认为是 1.11 以后)中,GOPATH 变量发生了变化。我的理解是你只需要在 GOPATH 不是 $HOME/go 的情况下进行设置。

Go 在 $HOME/go/src/ 中查找您的项目,例如我的 Golang 项目在 $Home/go/src/github.com/<your_github_userid>` 目录等。

如果您想使用项目的不同位置,您仍然可以将 GOPATH 设置为不同的目录。

而我的 shell 文件有以下内容可以同时容纳一组和未设置的 GOPATH。

导出 PATH="$PATH:$(go env GOPATH)/bin"


查看完整回答
反对 回复 2022-06-01
  • 3 回答
  • 0 关注
  • 350 浏览
慕课专栏
更多

添加回答

举报

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