如何将args传递给嵌入式python子解释器?

时间:2014-10-12 09:22:26

标签: python interpreter argv

我需要同时通过嵌入式python解释器解释几个文件(脚本)(更详细的是,一个脚本执行另一个脚本Popen,我的应用程序拦截它并自己执行它)。我发现它被称为sub-interpreter并且我将使用它。但我读过的子翻译没有sys.argv

  

新环境没有sys.argv变量

无论如何我需要传递argv所以我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可能会发现按照模式修改每个脚本更容易:

def run(*posargs, **argdict):
   """ 
   This does the work and can be called with:
   import scriptname
   scriptname.run(someargs) 
   """
   # Code goes here and uses posargs[n] where it would use sys.argv[n+1]

if __name__ == "__main__":
   import sys
   run(sys.argv[1:])

然后你的主脚本只需调用run方法就可以依次调用每个下标。

答案 1 :(得分:1)

您可以使用环境变量。让父母通过更新dict os.environ(如果它在Python中)或setenv()如果在C或C ++等中来设置它们。然后孩子们可以阅读os.environ以获得任何字符串他们需要。