1

How to run my script with one version of python from script with another version of python? Also, is there a way to catch all outputs of my script and print it?

4
  • 1
    You should only ask one question per, ehm, question. Commented Jul 21, 2014 at 19:18
  • Not sure I understand your second question. The output of your script is already being printed. If it wasn't, it wouldn't be called output. Commented Jul 21, 2014 at 19:18
  • Take a look at the subprocess module. Commented Jul 21, 2014 at 19:18
  • Answer to the first question: Depends on the environment(Windows,Linux, etc). Answer to the second: print statement Commented Jul 21, 2014 at 19:19

1 Answer 1

1

So you want to theoretically run say a script with python2 from a script running with python3? (Or something like that, I'm not really sure) If so I would use subprocess. You can find more information on that https://docs.python.org/2/library/subprocess.html and How do I execute a program from python? os.system fails due to spaces in path.

#my python3 script
import subprocess
subprocess.call(["python2", "python2scipt.py"])
Sign up to request clarification or add additional context in comments.

3 Comments

Better use subprocess.call(["python2", "python2script.py"]) - each part of command line call being one item in the list.
Thanks a lot. It worked for me: output = subprocess.Popen(p, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE).communicate()[0]
Oops, you're right I did forget those are necessary when using subprocesses. Thanks for the catch. I've corrected my example.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.