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