go mod unrecognized import path "xxxx" 解决办法

go mod unrecognized import path “xxxx” 解决办法

go mod init / tidy 后,会在当前项目目录下生成一个go.mod文件,例如:

# cat go.mod
module mm/mm-router/router

require (
	github.com/go-redis/redis v0.0.0-20190503082931-75795aa4236d
	github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e // indirect
)

当 go mod init 出现unrecognized import path "golang.org/x/crypto"错误时,说明没有找到 golang.org/x/crypto,
这时需要下载(可能需要):

go get golang.org/x/crypto

也可以将已有的 golang.org/x/crypto 拷贝过来。
找到 golang.org/x/crypto 所在路径,例如是:/root/go/src/golang.org/x/crypto
然后进入/root/go/src/golang.org/x/crypto目录, 执行:

go mod init

生成go.mod文件,防止出现下面错误:

go: parsing vendor/golang.org/x/crypto/go.mod: open /root/go/src/mm/mm-router/router/vendor/golang.org/x/crypto/go.mod: no such file or directory

然后回到项目目录下,编辑go.mod文件:

# cat go.mod
module mm/mm-router/router

require (
	github.com/go-redis/redis v0.0.0-20190503082931-75795aa4236d
	github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e // indirect
)
replace (
	golang.org/x/crypto => /root/go/src/golang.org/x/crypto
)

或使用下面命令:

go mod edit -replace=golang.org/x/crypto=/root/go/src/golang.org/x/crypto

再次运行 go mod init / tidy 就会跳过这个错误了。

你可能感兴趣的:(golang)