我有一个脚本,想做以下事情:
为1。我用
from subprocess import Popen
emsdk_path = os.path.join(os.getenv('EMSDK'))
emsdk_bat = os.path.join(emsdk_path, 'emsdk.bat')
Popen('{0} activate latest'.format(emsdk_bat)).communicate()
两个人。你知道吗
Popen(['emcmake', 'cmake', '-DCMAKE_BUILD_TYPE=Release', '-G "Ninja" ..'], shell=True).communicate()
第一个调用成功完成,但问题是下一个调用是另一个Popen
调用忘记了emscripten的所有内容,因为环境再次重置。你知道吗
有没有办法从一个Popen
调用中提取环境状态并在另一个调用中使用它?你知道吗
我知道Popen
中的env
参数,但问题是emsdk.bat
正在更新环境,我不知道如何将它带回python中。你知道吗
我尝试的另一件事是在第一个进程中将环境写入一个文件
Popen('{0} activate latest && echo %PATH% > env.txt'.format(emsdk_exe), shell=True).communicate()
但是env.txt
仍然包含旧环境。你知道吗
如果使用bash,可以在一个popen调用中使用“;”作为分隔命令的参数。你知道吗
这只适用于不需要两个输出的情况,因为它只返回最终输出,但它将保留第二个命令的实例。你知道吗
相关问题 更多 >
编程相关推荐