环境模块:无法初始化 TCL

irr*_*ome 3 package-management path environment-variables

我正在尝试在 CentOS 6 集群上创建一个 python-2.7.10 模块。我的简单python-2.7.10模块文件是:

#%Module1.0
prepend-path PATH /gpfs0/export/opt/anaconda-2.3.0/bin 
prepend-path MANPATH /gpfs0/export/opt/anaconda-2.3.0/share
prepend-path LD_LIBRARY_PATH /gpfs0/export/opt/anaconda-2.3.0/lib
set-alias python /gpfs0/export/opt/anaconda-2.3.0/bin/python
set-alias python2.7 /gpfs0/export/opt/anaconda-2.3.0/bin/python
Run Code Online (Sandbox Code Playgroud)

当我加载模块时,例如

module load python-2.7.10 
Run Code Online (Sandbox Code Playgroud)

python2.7 工作正常。但是,如果我尝试module listmodule availmodule unload python-2.7.10

我收到错误

init.c(556):ERROR:161: Cannot initialize TCL
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试我的octave-4.0.0模块:

#%Module1.0
prepend-path PATH /gpfs0/export/opt/octave-4.0.0/bin 
prepend-path MANPATH /gpfs0/export/opt/octave-4.0.0/share
prepend-path LD_LIBRARY_PATH /gpfs0/export/opt/octave-4.0.0/lib
set-alias octave /gpfs0/export/opt/octave-4.0.0/bin/octave-4.0.0 
set-alias octave-gui /gpfs0/export/opt/octave-4.0.0/bin/octave-4.0.0 
set-alias octave-cli /gpfs0/export/opt/octave-4.0.0/bin/octave-cli-4.0.0
Run Code Online (Sandbox Code Playgroud)

我可以module listmodule avail而且module unload octave-4.0.0很好。显然,我的python-2.7.10模块损坏了一些东西。我该如何解决?

irr*_*ome 5

显然,设置 LD_LIBRARY_PATH 是这里这里这里讨论的错误形式。所以我改变了我的邪恶方式并且没有设置 LD_LIBRARY_PATH 并且我的问题解决了。

编辑:事实证明,这个问题的根源在于系统/usr/lib64/libtcl8.5.so和 anaconda 的/gpfs0/export/opt/anaconda-2.3.0/lib/libtcl8.5.so. Anaconda 的 tcl 库与 Modules 包不兼容。解决方案保持不变,但如果您需要 anaconda 库,则需要根据具体情况处理这些库。