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

时间:2014-01-20 20:25:53

标签: python python-2.7

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

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

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

我不想分叉。我会尝试这个建议,但我需要返回代码。

3 个答案:

答案 0 :(得分:1)

应该是这样:

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

答案 1 :(得分:1)

您可以使用subprocess中的check_call来获取返回值,如果返回码不为零,则会引发此值。

答案 2 :(得分:1)

您可能只想将virtualenv与新的解释器一起使用。您可以安装新的Python,但不要将其作为主系统Python。或许你已经安装了Python 2.7。

https://github.com/0xdata/h2o/wiki/Installing-python-2.7-on-centos-6.3.-Follow-this-sequence-exactly-for-centos-machine-only

然后

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

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