I have a file (myenv.sh) with the following content
export MYVAR="HELLO"
And then I have my program (myhugeprogram.py):
#!/usr/bin/env python
import os
print os.environ['MYVAR']
Which is executable: chmod 755 myhugeprogram.py
Now I source my environment: source myenv.sh
And run my program:
./myhugeprogram.py
HELLO
As expected. Now I run it non-interactively via SSH:
user1@host1:~$ ssh user2@host2 ./myhugeprogram.py
Traceback (most recent call last):
File "./myhugeprogram.py", line 3, in <module>
print os.environ['MYVAR']
File "/usr/lib/python2.5/UserDict.py", line 22, in __getitem__
raise KeyError(key)
KeyError: 'MYVAR'
Which is normal, because I have not sourced myenv.sh. Now the question:
How do I source a Bash file which sets some environment variables before executing my Python script when running non-interactivaly via SSH?