从Airflow Worker获取库的当前git哈希

12 浏览
0 Comments

从Airflow Worker获取库的当前git哈希

我有一个名为mylib的库,我想在运行Airflow Worker时通过PythonOperator获得当前的git哈希值,以便进行日志记录。我知道几种方法可以获取最新的git哈希值,但主要问题是我不知道目录的位置,而且我可能会在目录之外运行它。

这些Worker本身可以各不相同(docker、ec2、gke、kubenetes),但源Python库mylib总是通过pip install git+https://${GITHUB_TOKEN}@github.com/user/mylib.git@{version}命令安装的。是否有一种通用的方法可以在任何Airflow Worker上获取mylib的git哈希值,因为安装mylib的目录会在我的Airflow Worker之间改变?

0
0 Comments

问题的出现原因:在Airflow Worker中,需要获取一个库的git哈希值。

解决方法:

1. 通过调用pip freeze命令来获取库的git哈希值。

2. 在Python中调用命令并解析结果来获取哈希值。

具体步骤如下:

1. 在终端中使用pip install git+https://github.com/jkbr/httpie.git#egg=httpie命令安装库。

2. 使用pip freeze | grep httpie命令获取库的git哈希值。

3. 解析输出结果,可以得到类似于httpie @ git+https://github.com/jkbr/httpie.git的字符串。

4. 在Python代码中使用subprocess.getoutput("pip freeze | grep <your package name>").split("@")[-1]来获取哈希值。

以上就是从Airflow Worker中获取库的git哈希值的方法。

如果以上方法不能解决问题,请提供更多详细信息,以便进一步帮助。

0