编写一个脚本来自动安装Web程序集git repo。它下载存储库,调用命令进行设置。
我正在按照该网站的说明进行操作:https://webassembly.org/getting-started/developers-guide/
目标行为:
$ source ./emsdk_env.sh --build=Release
这在Python中并不是那么容易,因为子进程似乎并没有削减它。我找到了exec(open("filename.sh").read())
命令,但无法弄清楚如何传递
--build=Release
参数。
我认为这是一个键值元组,需要这样传递,但是如何做到这一点也不容易。 这是我正在尝试的当前代码:
with open(emsdk_envFile) as f:
code = compile(f.read(), emsdk_envFile, 'exec')
exec(code, 'Release')
这是我得到的CLI输出:
File "installWebAssembly.py", line 184, in main
code = compile(f.read(), emsdk_envFile, 'exec')
File "/home/bcuser/Git/emsdk/emsdk_env.sh", line 19
if [ "$SRC" = "" ]; then
^
SyntaxError: invalid syntax
建议使用子过程。但是,当我在Subprocess.call()中运行详细命令时,得到以下输出:
subprocess.call('source /home/bcuser/Git/emsdk/emsdk_env.sh --build=Release', shell=True)
...
$ python myScript.py
OUTPUT:
/bin/sh: 1: source: not found
/bin/sh: 1: source: not found
最终目标是自动化安装和使用Web Assembly所需的所有步骤。 emsdk_env.sh 文件的目的是在PATH中添加相关的环境变量和目录条目,以设置当前终端以方便使用编译器工具。