为什么不能加载以下环境模块?

Why can the following environment module not be loaded?

加载时出错environment modules (4.2.4)我不明白。具有三个模块 A、B 和 C,其中 B 依赖于 A 和 C,而 C 仅依赖于 A:

A

#%Module1.0

B

#%Module1.0
module load A C

C

#%Module1.0
module load A

无法通过以下方式加载模块:

module load A B

打印到标准输出的错误是:

Error: B cannot be loaded due to missing prereq.
  HINT: the following modules must be loaded first: C

一个 module load A C B 正在工作。

这是模块环境的错误还是我遗漏了什么?

你明显是中了bug。 module load A B 应该会如您所愿。

我有reported it to the project on GitHub

作为 work-around,您还可以通过 --auto command-line 开关:

$ module load --auto A B
Loading B
  Loading requirement: C
$ module list
Currently Loaded Modulefiles:
 1) A   2) C   3) B 

另一个 work-around 是用 2 个单独的 module load 命令编写 B 模块文件:

#%Module1.0
module load A
module load C

更新:环境模块 4.2.5 现已发布,包含针对此问题的修复程序。因此 B 模块文件中的 module load A C 命令正确加载 AC 模块文件。