On 08Jul2014 15:45, Jim Byrnes <jf_byr...@comcast.net> wrote:
I would like to automate running virtualenv with a python script by:
opening gnome-terminal
cd to proper directory
run source /bin/activate
I found some examples of using os.system() to get gnome-terminal to
open but I can't figure out how then cd to the proper directory in the
new terminal.
You basicly can't do that, in that specific order, easily via system(); it runs
a shell command. It also waits for it to complete; you don't say if that is
required.
But like Alan, I think you're doing it in the wrong order. I would do the cd
and source activate, then start the gnome-terminal.
You can do that as one shell command like this:
cd /the/proper/directory; . /path/to/bin/activate; gnome-terminal
Such a string you can hand to os.system().
There are some obvious things to consider here:
- proper quoting of the directory path and the path to activate; they may
have almost anything in them and care is needed
- do you intent to wait for the terminal to exit before proceeding?
Regarding the former item: for this reason it would be more robust and safer to
do the cd (os.chdir) and activation in python. But please get the shell version
working first to ensure it does what you want it to do.
My biggest frustration right now is that I can't find any documentation on how
to use os.system(). Looking at the docs on the Python site I don't see
system() under the os module. Googling hasn't helped.
os.system should be documented in the "os" module.
But it just takes a shell command, so aside for handling the fork/exec-of-"sh
-c your_command"-wait, there is little to document.
Cheers,
Cameron Simpson <c...@zip.com.au>
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor