Haskell: 为什么我的环境变量在 运行 我的项目在 cabal 下时不可用?
Haskell: Why are my environment variables not available when running my project under cabal?
有谁知道如何定义程序 运行 使用 cabal 访问的环境变量?
我想定义我的程序可用的系统环境变量,例如通过 System.Environment 的 'getEnv' 函数。这些变量可用于 ghci 中的 'getEnv',但不适用于带有 cabal ('cabal run') 的程序 运行。
我将我的环境变量定义为:
$ export myvar=MYVALUE
在 ghci 中可以访问它们:
Prelude System.Environment> getEnv "myvar"
"MYVALUE"
然而,类似地在我的程序中使用 'getEnv' 和 运行 'cabal run' 给出了错误:
getEnv: does not exist (no environment variable)
当 运行 通过 cabal 时,我的程序以某种方式找不到它们。我尝试将 'export' 语句放在我的 .bash_profile 中并重新启动我的终端。但这给出了在 ghci 中工作的相同问题,并在 运行 with cabal.
时给出了该错误
感谢您的评论,我意识到这只是我的一个愚蠢的错误。
我的程序使用了几个不同的环境变量,其中一些被成功读取——错误是由于缺少一个我没有在 ghci 中测试过的。
所以问题是由于没有测试所有变量,这是一个愚蠢的错误,但无论如何感谢您的评论,因为它们有助于诊断问题。
有谁知道如何定义程序 运行 使用 cabal 访问的环境变量?
我想定义我的程序可用的系统环境变量,例如通过 System.Environment 的 'getEnv' 函数。这些变量可用于 ghci 中的 'getEnv',但不适用于带有 cabal ('cabal run') 的程序 运行。
我将我的环境变量定义为:
$ export myvar=MYVALUE
在 ghci 中可以访问它们:
Prelude System.Environment> getEnv "myvar"
"MYVALUE"
然而,类似地在我的程序中使用 'getEnv' 和 运行 'cabal run' 给出了错误:
getEnv: does not exist (no environment variable)
当 运行 通过 cabal 时,我的程序以某种方式找不到它们。我尝试将 'export' 语句放在我的 .bash_profile 中并重新启动我的终端。但这给出了在 ghci 中工作的相同问题,并在 运行 with cabal.
时给出了该错误感谢您的评论,我意识到这只是我的一个愚蠢的错误。
我的程序使用了几个不同的环境变量,其中一些被成功读取——错误是由于缺少一个我没有在 ghci 中测试过的。
所以问题是由于没有测试所有变量,这是一个愚蠢的错误,但无论如何感谢您的评论,因为它们有助于诊断问题。