Haskell:为什么在cabal下运行项目时我的环境变量不可用?

时间:2016-11-10 08:30:05

标签: haskell environment-variables cabal

有没有人知道如何定义要使用cabal运行的程序访问的环境变量?

我想定义我的程序可用的系统环境变量,例如通过System.Environment' getEnv'功能。这些变量可用于“getEnv”和#39;在ghci中,但不是与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中工作并在使用cabal运行时给出错误。

1 个答案:

答案 0 :(得分:0)

感谢您的评论,我意识到这只是因为我犯了一个愚蠢的错误。

我的程序使用了几个不同的环境变量,其中一些被成功读取 - 错误是由于缺少一个我没有在ghci中测试过。

所以问题是由于没有测试所有变量,这是一个愚蠢的错误,但感谢你的评论,因为它们有助于诊断问题。