我需要同时通过嵌入式python解释器解释几个文件(脚本)(更详细的是,一个脚本执行另一个脚本Popen
,我的应用程序拦截它并自己执行它)。我发现它被称为sub-interpreter并且我将使用它。但我读过的子翻译没有sys.argv
:
新环境没有sys.argv变量
无论如何我需要传递argv所以我该怎么做?
答案 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
以获得任何字符串他们需要。