go mod init报错

今天学到4.2准备集成 Gorilla Mux,执行go mod init命令报错

λ go mod init
go: cannot determine module path for source directory C:\study\go\src (outside GOPATH, module path must be specified)

之前在准备环境的时候跳过了这个步骤,所以对go的工作目录不太了解。百度了一下,出现这个问题是因为未在go的工作目录下执行这个命令。
执行如下命令得到我自己的go工作目录

λ go env | grep 'GOPATH'
set GOPATH=C:\Users\steff\go

进入工作目录,建立项目文件夹 learnku\4.2
在工作目录下再次对项目文件夹运行go mod init,创建成功

λ go mod init learnku/4.2
go: creating new go.mod: module learnku/4.2
go: to add module requirements and sums:
        go mod tidy

看一下生成的go.mod

λ cat go.mod
module learnku/4.2

go 1.18

成功!
接下来按照教程执行

go get -u github.com/gorilla/mux

无报错,但是在编译代码的时候出现错误,GOROOT目录下找不到mux包
修改GO env的GO111MODULE参数为off,也无法解决

λ go env -w GO111MODULE=off

继续报错在工作目录C:\Users\steff\go\src中找不到mux
后经自己在网上搜索发现是因为在源代码里我自己import了”mux”

import (
    "mux"
)

而没有给出mux的绝对路径

import (
    "github.com/gorilla/mux"
)

重新编译,成功!

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1
 go mod init 模块名

你忘了加模块名而已,现在已经不需要在 GOPATH 下工作了

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!