我正在修改其他人的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脚本?
我不想分叉。我会尝试这个建议,但我需要返回代码。
答案 0 :(得分:1)
应该是这样:
import subprocess, sys
subprocess.call([sys.executable, ...])
答案 1 :(得分:1)
您可以使用subprocess
中的check_call来获取返回值,如果返回码不为零,则会引发此值。
答案 2 :(得分:1)
您可能只想将virtualenv与新的解释器一起使用。您可以安装新的Python,但不要将其作为主系统Python。或许你已经安装了Python 2.7。
然后
pip install virtualenv
virtualenv venv --distribute -p /usr/local/bin/python2.7
source venv/bin/activate
现在您的路径将调整到包含新Python的本地venv目录。您可以安装依赖项等,它们只会安装到venv中。这是将环境彼此隔离的好方法。