環境模組:無法初始化 TCL

環境模組:無法初始化 TCL

我正在嘗試在 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

當我加載模組時,例如

module load python-2.7.10 

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

我收到錯誤

init.c(556):ERROR:161: Cannot initialize TCL

但是,如果我嘗試我的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

我可以module listmodule avail而且module unload octave-4.0.0很好。顯然,我的python-2.7.10模組損壞了某些東西。我該如何解決?

答案1

顯然,如所討論的,設定 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 庫,則需要根據具體情況進行處理。

答案2

我遇到了相同的問題,並且使用下面連結中的建議,我能夠在不取消設定 LD_LIBRARY_PATH 的情況下糾正問題。基本上,您禁用 modulecmd 使用 LD_LIBRARY_PATH 執行的能力;但是,此變更不會阻止 modulecmd 修改 LD_LIBRARY_PATH 變數。使用的指令是: chown nobody:nobody modulecmd chmod ug+s modulecmd

https://sourceforge.net/p/modules/mailman/message/27952351/

相關內容