Hi all,
I'm on Mac OS X 10.4...
So I've got a small python script I need to run from R. However, to get
the python script working, I need to have the shell that R calls get
settings from my .bash_profile file, which apparently it doesn't
currently (the shell R calls uses an older version of python, and also
this older version of python can't see various python modules I have to
import to make the python script work).
Basically I need to do this:
===========mytreefile_location <-
"/bioinformatics/phylocom/_results/beta/ss_newicks/subsamp6_fromea_wnalist.newick"
cmd1 = 'source ~/.bash_profile'
cmd2 = paste('python
/bioinformatics/phylocom/_scripts/update_newick_root.py ',
mytreefile_location)
system(cmd1)
system(cmd2)
===========
...but if I do it this way, the sourcing of .bash_profile from the first
system() call does not carry over to the 2nd system() call.
Any help appreciated!!
Cheers,
Nick
--
===================================================Nicholas J. Matzke
Ph.D. student, Graduate Student Researcher
Huelsenbeck Lab
Center for Theoretical Evolutionary Genomics
4151 VLSB (Valley Life Sciences Building)
Department of Integrative Biology
University of California, Berkeley
Lab websites:
http://ib.berkeley.edu/people/lab_detail.php?lab=54
http://fisher.berkeley.edu/cteg/hlab.html
Dept. personal page:
http://ib.berkeley.edu/people/students/person_detail.php?person=370
Lab personal page: http://fisher.berkeley.edu/cteg/members/matzke.html
Lab phone: 510-643-6299
Dept. fax: 510-643-6264
Cell phone: 510-301-0179
Email: matzke at berkeley.edu
Mailing address:
Department of Integrative Biology
3060 VLSB #3140
Berkeley, CA 94720-3140
-----------------------------------------------------
"[W]hen people thought the earth was flat, they were wrong. When people
thought the earth was spherical, they were wrong. But if you think that
thinking the earth is spherical is just as wrong as thinking the earth
is flat, then your view is wronger than both of them put together."
Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical
Inquirer,
14(1), 35-44. Fall 1989.
http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
Prof Brian Ripley
2009-Feb-23 07:21 UTC
[R] running multiple commands in one system() call
On Sun, 22 Feb 2009, Nick Matzke wrote:> Hi all, > > I'm on Mac OS X 10.4...For which there is a separate mailing list, R-sig-Mac .> So I've got a small python script I need to run from R. However, to get the > python script working, I need to have the shell that R calls get settings > from my .bash_profile file, which apparently it doesn't currently (the shell > R calls uses an older version of python, and also this older version of > python can't see various python modules I have to import to make the python > script work).Let me guess: you are in fact using R.app (the GUI, a separate project) and not R. It is most likely not a question of 'the shell that R calls' but the 'settitngs that launching a process from the desktop uses', and you need to adjust that. It you are really running command-line R, it inherits shell settings (especially the path) from the shell which called it. If you don't know how to set the environment for R.app, ask on the R-sig-mac list as it is way off topic here.> Basically I need to do this: > > ===========> mytreefile_location <- > "/bioinformatics/phylocom/_results/beta/ss_newicks/subsamp6_fromea_wnalist.newick" > > cmd1 = 'source ~/.bash_profile' > cmd2 = paste('python /bioinformatics/phylocom/_scripts/update_newick_root.py > ', mytreefile_location) > > system(cmd1) > system(cmd2) > ===========> > ...but if I do it this way, the sourcing of .bash_profile from the first > system() call does not carry over to the 2nd system() call.Of course: each system() command runs a separate shell. Your subject line is about something not covered in the body of your email: to do that put the commands in an executable bash script and call system() on that. -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595