2017-02-03 55 views
0

因此我知道subprocess如何工作并使用它很多,但我遇到了一个奇怪的问题。我需要执行一些环境变量的导出。原因是某些程序(黑盒)执行的程序看起来好像在子shell中运行,所以它无法访问环境变量,但它可以访问我的所有文件。将环境传递给父项的python shell脚本执行

我不能硬编码环境变量,所以我想source.其中有export命令的文件。但是,如果我在子进程中使用source.这个文件,它将不会对其父进程产生任何影响。在这种情况下,我需要除subprocess之外的一些函数,它们可以在不创建子进程的情况下执行shell命令(如果存在)。另一个问题是子进程没有适当的权限来读取文件。

而且通过os复制环境变量也是不可能的。

除了subprocess还有什么?或者还有其他一些解决方法?

回答

1

恕我直言,最简单的解决方案在于创建一个新的shell脚本(我们称之为run_black_box.sh),它源自安装脚本(假设它命名为setup.sh)以初始化环境,然后调用black_box程序。

这里是run_black_box.sh一个可能的内容:

#/bin/bash 
source setup.sh 
black_box 

的你可以通过run_black_box.shsubprocess执行。

相关问题