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 就会跳过这个错误了。