引言
我在从python调用进程(通过subprocess
库)运行第三方可执行文件时遇到问题。程序崩溃,而它从命令行完美运行。原因是子进程中存在环境变量冲突,即一个可用且不应该的变量(此变量在python进程范围中定义)
例如,如果在流程中存在环境变量MYVAR = 'hello'
,但系统中尚未定义此var,则MYVAR
中将显示os.environ
,这是os.environ
在子进程调用中默认使用。
我的意思
我需要完全重现进程调用,就好像它直接来自命令行一样(我可以为进程调用手动删除此变量,但这可能会导致维护噩梦)
要实现这一点,我需要读取环境/系统全局变量,不是python进程可用的环境变量。有了这个,在适当的环境下进行流程调用是没有道理的。
我做了什么
使用{{1}},但如前所述,它显示了python进程可用的变量......