romenigld

romenigld

(RuntimeError) environment variable WOLFRAM_APP_ID is missing

I’m reading the ebook Programming Phoenix 1.4 and in the page 268 when I try to execute the iex it complains for this:

** (RuntimeError) environment variable WOLFRAM_APP_ID is missing.

    (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
    (stdlib) erl_eval.erl:449: :erl_eval.expr/5
    (stdlib) erl_eval.erl:126: :erl_eval.exprs/5
    (elixir) lib/code.ex:240: Code.eval_string/3
    (mix) lib/mix/config.ex:158: anonymous fn/2 in Mix.Config.__import__!/2
    (elixir) lib/enum.ex:1948: Enum."-reduce/3-lists^foldl/2-0-"/3
    (mix) lib/mix/config.ex:157: Mix.Config.__import__!/2

So I add the API key in both config/dev.exs and config/prod.secret.exs files:

wolfram_app_id = 
  System.get_env("XXXXXX-XXXXXXXXXX") || 
  raise """
  environment variable WOLFRAM_APP_ID is missing.
  """
config :info_sys, :wolfram, app_id: wolfram_app_id

I created the key XXXXXX-XXXXXXXXXX in the http://developer.wolframalpha.com/portal/myapps/index.html
with the Application name: rumbl
and then generated the AppID: XXXXXX-XXXXXXXXXX
What I’m doing incorrect?
the value of the WOLFRAM_APP_ID I put just on the config/prod.secret.exs file?
like WOLFRAM_APP_ID= "XXXXXX-XXXXXXXXXX"
and then keep on the config/dev.exs file the code: System.get_env("WOLFRAM_APP_ID") || ?

Marked As Solved

NobbZ

NobbZ

As I said, I’d not hardcode it there for several reasons, but use a .env or .envrc for the project (not comitted into source control) and source it before working with the project.

direnv is a nice tool for such setups. It will automatically “execute” .envrc files when entering a directory, if that directory is “trusted”.

Also Liked

romenigld

romenigld

Just for help if someone stopped like me in this part of the book, I’ll share what I do for run correctly.
I create inside the config folder a .env file and then add:
export WOLFRAM_APP_ID="XXXXXX-XXXXXXXXXX"
then after I run on terminal:
source config/.env
And then I try iex -S mix:

iex(1)> InfoSys.compute("what is elixir?")
[
  %Task{
    owner: #PID<0.366.0>,
    pid: #PID<0.368.0>,
    ref: #Reference<0.625303463.500432897.47893>
  }
]

and work’s.

Then I add in the .gitignore file:

# Ignore .env files 
/.env

for not share by git the WOLFRAM_APP_ID.
Is that correct what I’m doing?
Thank’s for Help @Nobbz and @fun2src.

NobbZ

NobbZ

I’d not hardcode it into any of those…

NobbZ

NobbZ

This will only ignore .env from the repositories root. If you want to exclude config/.env, then you have to do /config/.env, assuming that git-root and project root are the same.

Other than that, the flow seems to be correct, though I prefer to have .env(rc) files in the project root for discoverability.

Last Post!

DivingEagle

DivingEagle

I forgot to mention that I first made this entry into config.exs and prod.secret.exs

wolfram_app_id =
System.get_env(“WOLFRAM_APP_ID”) ||
raise “”"
environment variable WOLFRAM_APP_ID is missing.
“”"

config :info_sys, :wolfram, app_id: “XXX-XXXX”

Where Next?

Popular in Questions Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New

Other popular topics Top

jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" =&gt; #BSON.ObjectId&lt;58eb1a7a9ad169198c3dXXXX&gt;, "email" =&gt; ...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 44167 214
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement