如何在Python中使用当前的Python解释器运行外部Python脚本?

How in Python to run external Python script with the current Python interpreter?

本问题已经有最佳答案,请猛点这里访问。

我正在修改其他人的python代码,它当前使用系统的默认python(并获取返回代码)同步执行外部python脚本(fast-downward)。

1
code = os.system("%s/src/translate/translate.py %s %s" % (down_home, domain, pddl) # ...

我不想让/usr/local/bin/python2.7成为我的默认python解释器(CentOS附带一个旧的python)。如何使用当前的python解释器调用外部python脚本?

我不想用叉子叉。我会试试这个建议,但我需要返回码。


您可能只想在新的解释器中使用virtualenv。您可以安装新的python,但不要使它成为主系统python。或者您已经安装了python 2.7。

https://github.com/0xdata/h2o/wiki/installing-python-2.7-on-centos-6.3.-仅在centos机器上遵循此顺序

然后

1
2
3
pip install virtualenv
virtualenv venv --distribute -p /usr/local/bin/python2.7
source venv/bin/activate

现在,您的路径将被调整到本地venv目录,其中包含新的python。您可以安装依赖项等,它们将只安装到venv中。这是一种很好的将环境彼此隔离的方法。


您可以使用来自subprocess的check_调用,您可以得到返回值,如果返回代码不是零,它会增加。


应该是这样:

1
2
import subprocess, sys
subprocess.call([sys.executable, ...])