我想使用subprocess
从Python脚本运行Python脚本,我希望为每个脚本使用相同的解释器。
我正在使用virtualenv,所以我想做类似的事情:
subprocess.Popen('%s script.py' % python_bin)
如何获得python_bin
?
应该是virtualenv之外的/usr/bin/python
,以及virtualenv中的/path/to/env/bin/python
。
答案 0 :(得分:64)
解释器的名称存储在变量sys.executable
中答案 1 :(得分:7)
我发现了:
>>> import sys
>>> help(sys)
...
DATA
__stderr__ = <open file '<stderr>', mode 'w' at 0x110029140>
__stdin__ = <open file '<stdin>', mode 'r' at 0x110029030>
__stdout__ = <open file '<stdout>', mode 'w' at 0x1100290b8>
api_version = 1013
argv = ['']
builtin_module_names = ('__builtin__', '__main__', '_ast', '_codecs', ...
byteorder = 'big'
copyright = 'Copyright (c) 2001-2009 Python Software Foundati...ematis...
dont_write_bytecode = False
exc_value = TypeError('arg is a built-in module',)
exec_prefix = '/usr/bin/../../opt/freeware'
executable = '/usr/bin/python_64'
答案 2 :(得分:2)
只是为了确保:
>>> import sys
>>> sys.executable
'/usr/bin/python'
>>>