我想用Python脚本运行Python脚本subprocess,我希望为每个脚本使用相同的解释器.
我正在使用virtualenv,所以我想做类似的事情:
subprocess.Popen('%s script.py' % python_bin)
Run Code Online (Sandbox Code Playgroud)
我怎么得到python_bin?
它应该/usr/bin/python在virtualenv之外,并且/path/to/env/bin/python在virtualenv中.
我有一个Pylons控制器(不相关但解释了为什么我有这个需要)说starter.py,启动另一个进程使用:
retcode = subprocess.call(('python','/path/to/myScript.py'))
Run Code Online (Sandbox Code Playgroud)
现在,因为应用程序在虚拟环境中运行python不是正确的二进制文件,因为它无法访问我的虚拟环境中安装的站点包.
它应该是:
retcode = subprocess.call(('path/to/virtual/env/bin/python','/path/to/myScript.py'))
Run Code Online (Sandbox Code Playgroud)
并且path/to/virtual/env/bin/python正在运行starter.py.
是否有机会不设置此路径(例如,在.ini文件中)并检索它?
在Python中,你可以做到
>>> import sys
>>> sys.executable
'/usr/bin/python'
Run Code Online (Sandbox Code Playgroud)
获取可执行文件的位置.你能用内置于Ruby的东西做同样的事情吗?它可以是一个特殊的变量,方法等.
如果没有,那么以跨平台方式确定ruby可执行文件位置的最干净,最可靠的方法是什么?
相关:
标题几乎都说明了.我想知道python中使用了哪个python可执行文件.就像是
Python 2.7.2 (default, Nov 1 2011, 03:31:17) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print <insert the code I'm after here> /usr/local/bin/python2.7 >>>
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print <insert the code I'm after here> /usr/bin/python2.6 >>>
你得到了照片
谢谢