Assuming the .env file is loaded before execution, how can you append to it without overriding it?


The above file would (?) override it, and that would be bad. I could put it in .bash_profile or .profile, but that's not consistent with what I have now, and I only want to set it for the current virtualenv too.

I don't think this makes any difference, but I'm using Mac OS X (the tutorial I was using was multi-platform)

  • What are you trying to do? You want to add a couple environment variables temporarily? It sounds like you just want to export DEBUG=True. This will set the DEBUG variable only for the current shell and it's children. – user1794469 Jun 24 '15 at 16:15
  • @user1794469 Is that possible in the .env file? I want to append to PYTHONPATH. – noɥʇʎԀʎzɐɹƆ Jun 24 '15 at 17:25
  • It shoudl, you just add the current: export PYTHONPATH=$PYTHONPATH:/Users/James/project or export PYTHONPATH=/Users/James/project:$PYTHONPATH depending on which path you want search first. – user1794469 Jun 24 '15 at 17:29

What you most likely want to do is export the variables you are interested in. The following will make the variable available to the current shell and any sub-processes it creates:

export PYTHONPATH=$PYTHONPATH:/Users/James/project

Here a process that uses PYTHONPATH will first search the existing path for its target and if not found, try the /Users/James/project. If you wanted to overide some existing path, you could add the new path first:

export PYTHONPATH=/Users/James/project:$PYTHONPATH

In either case, other shells will not see the variable (and obviously closing the shell will make the variable unaccessible).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.