2016-07-22 75 views
3

我已经在Ubuntu桌面的python中编写了一个应用程序指示器,它通过子进程调用了几个外部程序。它在英语区域设置下工作正常,但与其他人打破。如何为python应用程序的所有子项设置区域设置?

我知道有一种方法可以做subprocess.call(['command','arg1','arg3'], env=new_env_dict)但是我感兴趣的是是否有办法强制所有的subprocess调用都有新的环境,而不是每次调用它。

回答

2

到目前为止,我还没有找到一种方法来全局告诉所有subprocess通话使用特定的环境,所以我决定去与单一功能,只有需要的参数列表,以及区域设置如图related post但稍有不同。

def run_cmd(self, cmdlist): 

    new_env = dict(os.environ) 
    new_env['LC_ALL'] = 'C' 
    try: 
     stdout = subprocess.check_output(cmdlist,env=new_env) 
    except subprocess.CalledProcessError: 
     pass 
    else: 
     if stdout: 
      return stdout 
相关问题