módulo de ambiente: Não é possível inicializar o TCL

módulo de ambiente: Não é possível inicializar o TCL

Estou tentando criar um módulo python-2.7.10 em um cluster CentOS 6. Meu python-2.7.10arquivo de módulo simples é:

#%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

Quando carrego o módulo, por exemplo

module load python-2.7.10 

python2.7 funciona bem. No entanto, se eu tentar module listou module availoumodule unload python-2.7.10

eu recebo o erro

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

No entanto, se eu tentar meu octave-4.0.0módulo:

#%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

Eu posso module list, module availe module unload octave-4.0.0muito bem. Claramente, meu python-2.7.10módulo quebrou alguma coisa. Como faço para corrigir isso?

Responder1

Evidentemente, definir LD_LIBRARY_PATH é inadequado, conforme discutidoaqui,aquieaqui. Então mudei meus maus hábitos e não configurei LD_LIBRARY_PATH e meu problema foi resolvido.

EDITAR: Acontece que a raiz deste problema é uma diferença entre o sistema /usr/lib64/libtcl8.5.soe o do anaconda /gpfs0/export/opt/anaconda-2.3.0/lib/libtcl8.5.so. A biblioteca tcl do Anaconda é incompatível com o pacote Modules. A solução permanece a mesma, mas se você precisar das bibliotecas anaconda, precisará lidar com elas caso a caso.

Responder2

Encontrei o mesmo problema e, usando a sugestão do link abaixo, consegui corrigir o problema sem desativar LD_LIBRARY_PATH. Basicamente, você desativa a capacidade do modulecmd de usar LD_LIBRARY_PATH para sua execução; entretanto, essa alteração não impede que modulecmd modifique a variável LD_LIBRARY_PATH. Os comandos usados ​​são: chown ninguém:nobody modulecmd chmod ug+s modulecmd

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

informação relacionada