0

我目前正在使用远程服务器(通过 ssh),我需要加载一些模块(模块加载 [package1][package2] ecc)。具体来说,它需要 numpy 版本 1.15.2,但在包含所有 numpy 版本的目录中,只有 1.14.0 版本。

无论如何,我能够得到包 numpy/1.15.2--python--3.6.4 (我显然没有权限在包含其他版本的 numpy 的目录中复制)所以我​​想知道我是否可以(以及如何)临时更改环境变量路径,以便仅在这种情况下指定“模块加载”应该查找的位置,而不是像其他模块那样的通常存储库。

4

2 回答 2

0

临时更改环境变量路径

我认为最简单的方法是使用修改后的 PATH 创建一个子shell并在其中工作:

PATH=modifiedpath bash 

这是否有效,取决于您在 .bashrc 中使用 PATH 究竟在做什么。如果您重新评估旧 PATH,您的更改将丢失,在这种情况下,您可以改为执行

PATH=modifiedpath bash --norc

绕过 soucring .bashrc。当然,这意味着 .bashrc 中的别名、函数和非导出变量也不可用。

如果这也引起了问题,您可以留在 shell 中,但暂时保护 PATH:

origpath=$PATH
PATH=modifiedpath
... do your work
PATH=$origpath # restore it
于 2021-05-27T14:30:23.603 回答
0

您可以拥有自己的模块路径来取代管理员在您使用的系统上提供的模块路径。

只需创建一个目录结构,然后在其中添加您自己numpy/version的模块文件(此类模块文件应定义环境变量以使用您特定安装的 numpy 包)。

$ mkdir ~/modulefiles
$ mkdir ~/modulefiles/numpy
$ $EDITOR ~/modulefiles/numpy/<version>

然后在您当前的 shell 会话中启用此模块路径:

$ module use ~/modulefiles

最后添加的模块路径具有更高的优先级,因此当您执行该module load numpy命令时,它将加载您特定的 numpy 模块文件,而不是默认提供的 numpy 模块文件。

于 2021-05-28T18:29:01.940 回答