Q:

Append to an environment variable without overwriting values from .env file

Assuming the .env file is loaded before execution, how can you append to it without overriding it?
DEBUG=True
FOO=BAR
PYTHONPATH="/Users/James/project/"

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)

A:

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). 

