问题背景
在linux 系统下开发go项目
项目场景:
在linux 系统下开发go项目,当前go版本: go1.15.8
项目中需要使用viper组件,viper版本v1.8.1
go项目使用go mod 模式编译
问题描述:
1.执行go mod vendor时报错:
github.com/spf13/viper imports
github.com/spf13/afero imports
io/fs: package io/fs is not in GOROOT(usr/local/go/src/io/fs)
go build
原因分析:
viper v1.8.1依赖更高版本的go版本: v1.16.5
解决方案:
方案一:
1.下载go版本v1.16.5
2.解压到指定目录,如$HOME
3.编辑$HOME/.bashrc ,添加:
export PATH=$HOME/go/bin:$PATH
4.生效:
source ~/.bashrc
5. 查看go 版本是否是v1.16.5
go version
6.重新执行go mod vendor,问题得到解决。
方案二:
使用更低版本的viper。