子流程,在Python的备用版本中启动脚本

子流程,在Python的备用版本中启动脚本,python,subprocess,launch,versions,Python,Subprocess,Launch,Versions,我的主脚本,main.py在python3中运行。在它里面,我想用某种特定版本的python启动另一个脚本 import subprocess pysh="/data/data/org.qpython.qpy/files/bin/qpython-android5.sh" subprocess.call([pysh,'filetext.py']) 问题: 如何使用子流程在python2.x或3.x中交替打开filetext.py 我试过: 我尝试输入了几个不同的参数,但都没有效果,例如: os.

我的主脚本,
main.py
在python3中运行。在它里面,我想用某种特定版本的python启动另一个脚本

import subprocess
pysh="/data/data/org.qpython.qpy/files/bin/qpython-android5.sh"
subprocess.call([pysh,'filetext.py'])
问题:

如何使用子流程在python2.x或3.x中交替打开
filetext.py

我试过:

我尝试输入了几个不同的参数,但都没有效果,例如:

os.system('python -2 -m filetext.txt')


任何帮助都将不胜感激。

当我尝试几乎相同的方法时,似乎效果如下:

import subprocess

print(subprocess.call(["python2", "-c", "import sys; print sys.version"]))
从python3调用时,将打印2.7.5。这当然取决于您想要使用的python版本是否在路径上,如果不在路径上,则使用完整路径调用二进制文件

我不确定这是否只是一个输入错误,但我注意到您说过要运行filetext.py,但您在示例中传递了filetext.txt

如果这不起作用,我必须知道更多——你说它不起作用,但到底发生了什么?

试试这个:

subprocess.call(['C:/Python27/python.exe', "filetext.txt"])
首先给出所需可执行文件的路径,然后在不同的参数中给出参数

import subprocess

print(subprocess.call(["python2", "-c", "import sys; print sys.version"]))
subprocess.call(['C:/Python27/python.exe', "filetext.txt"])