Loading environment modules within a python script

后端 未结 4 1392
一个人的身影
一个人的身影 2020-12-05 07:13

Is there a way for a python script to load and use environment modules? os.system(\'module load xxx\') doesn\'t work since it executes them in a subshell (at le

4条回答
  •  悲&欢浪女
    2020-12-05 08:09

    I know this question's kind of old but it's still relevant enough that I was looking for the answer, so I'm posting what I found that works as well:

    At least in the 3.2.9+ sources, you can include the python "init" file to get a python function version of module:

    >>> exec(open('/usr/local/Modules/default/init/python.py').read())
    >>> module('list')
    No Modulefiles Currently Loaded.
    >>> module('load','foo')
    >>> module('list')
    Currently Loaded Modulefiles:
      1) foo/1.0
    

    I've been told earlier versions can do the same without the .py extension, but that's second hand, so ymmv.

    Alternative "init" file location (from comment by @lib): /usr/share/Modules/init/python.py

    To use with Python 3, version 4.0 or later of Environment Modules is required, as that is the first version to have a bug-free Python3-compliant version of the Python init file.

提交回复
热议问题