如何通过运行Go应用程序读取env文件?



我有一个在Go开发的应用程序。我有一个config.env文件,并通过使用godotenv库从中获得一些关键变量。下面是代码:

func InitializeEnvVars() error {
err := godotenv.Load("./config.env")
return err
}

当我在MacOS上使用go build .构建我的项目并且我想运行应用程序时,应用程序给出了关于读取.env文件的错误:

2021/03/07 17:42:21 [ERROR]: Error loading .env file

但是当我用go run main.go命令运行我的应用程序时,一切都很好。

我该如何解决这个问题?

根据注释,godotenv.Load("./config.env")将尝试从工作目录加载.env文件。设置工作目录的方法取决于你如何启动应用程序(即命令行/gui)。

如果您希望.env从保存可执行文件的文件夹中加载,那么请尝试以下操作(注意有一些注意事项):

ex, err := os.Executable()
if err != nil {
panic(fmt.Sprintf("Failed to get executable path: %s", err))
}
envPath := filepath.Join(filepath.Dir(ex), ".env")
err = godotenv.Load(envPath)

您可以逐步找到下面的解决方案:

  • 创建cmd
  • 文件夹
  • 移动可执行文件到文件夹
  • 创建env文件,并在代码中命名到这个文件夹
  • 打开终端(zsh - MacOS),执行以下命令:open <executableFileName>

输出文件应该在单独的文件夹中

相关内容

  • 没有找到相关文章

最新更新