Join the community!
Visit our GitHub or LinkedIn page to join the Tilburg Science Hub community, or check out our contributors' Hall of Fame!
Want to change something or add new content? Click the Contribute button!
Overview
When working with APIs or cloud services, you usually need to access some personal credentials or secret keys. With environment variables, we can access such variables without literally writing them down in a notebook or script (e.g., password = "..."
). The basic idea is that these global variables are stored permanently and are attached to your operating system. Therefore, you can access these variables regardless of whether you are working in RStudio or a Jupyter Notebook.
As long as you never print its value, you can safely push a script that references an environment variable to a public Github repository without having to worry about disclosing any login credentials. However, you do need to inform others with whom you’re collaborating about its value because it’s not contained in the script itself.
Never upload a script that contains privacy-sensitive information to Github. Even if you’d remove it afterward, it still remains visible through the repository history.
Configure Environment Variables
Mac/Linux
- Go to the terminal and type
printenv
to list all environment variables stored on your machine. - Open the terminal, go to your user directory (shortcut:
cd ~
), and typenano .bash_profile
to open a text editor in the terminal. - Within this window you can create new variables as follows:
export [VARIABLE_NAME]="the string value you want to store";
. Note that there is no space between the variable name and its value and that the string is enclosed in double-quotes. - Exit the editor by pressing Ctrl + X, choose
Y
(to save changes), and finally pressEnter
. - You can check whether everything worked out correctly by restarting your terminal and typing
printenv
(VARIABLE_NAME
should be listed there now!). If the new environment variables didn’t show up, you may need to usenano .zshrc
instead ofnano .bash_profile
(see step 2).
Windows
- Open up “Control Panel” > “System and Security” > “System”.
- In the left sidebar click on “Advanced system settings”.
- Click on “Environment Variables” in the bottom right.
- Create a new “User Variable” (top list) and fill out the “Variable name” and “Variable value”.
- Double click “OK” twice.
Access Environment Variables
Use the code snippets below to easily assign the value of the environment variable (VARIABLE_NAME
) to a variable to be used in Python or R. Subsequently, you can re-use that variable throughout the script, for example for API authentication purposes.
import os
# VARIABLE_NAME is the name of the environment variable you defined in the terminal
api_password = os.environ['VARIABLE_NAME']
# VARIABLE_NAME is the name of the environment variable you defined in the terminal
api_password = Sys.getenv("VARIABLE_NAME")