go中的os.Getenv(""),得不到自定义环境变量
package main
import (
"fmt"
"os"
"github.com/spf13/viper"
)
func main() {
apiKey := os.Getenv("OPENAI_API_KEY")
if apiKey != "" {
}
fmt.Println(apiKey)
viper.AutomaticEnv()
if env := viper.Get("OPENAI_API_KEY"); env == nil {
println("error!")
} else {
fmt.Printf("%s\n", env)
}
}
解决方案:
.bashrc或./zshrc文件中,设置环境变量语句前加上export即可。
另外,对于viper,是按照大写找的,如果环境变量中有小写,是找不到的!
然后再终端下运行就可以了