从python脚本

时间:2017-09-29 19:01:19

标签: python batch-file environment-variables

我正在尝试通过CI / CD自动构建,测试和部署。我有一个python脚本,用于查询我的git远程存储库,以语义版本控制格式(x.x.x)选择最新的标记,并根据更改的类型递增它。

我想设置我的环境变量(GIT_NEW_VERSION),以便可以在我的Makefile中使用它,并且生成的二进制文件将具有可用的版本。这样做的问题是python脚本在一个子进程中运行,该子进程无法访问父进程变量。所以我只能为当前进程和之后创建的任何进程修改变量,而不是调用python脚本的进程。

我可以从python脚本中调用make,但这不适合使用我的CI工具进行错误管理和日志记录。

1 个答案:

答案 0 :(得分:0)

击:

LD_LIBRARY_PATH=my_path
sqsub -np $1 /path/to/executable

类似,在Python中:

import os
import subprocess
import sys

os.environ['LD_LIBRARY_PATH'] = "my_path" # visible in this process + all children
subprocess.check_call(['sqsub', '-np', sys.argv[1], '/path/to/executable'],
                      env=dict(os.environ, SQSUB_VAR="visible in this subprocess"))