модуль среды: Невозможно инициализировать TCL

модуль среды: Невозможно инициализировать TCL

Я пытаюсь создать модуль python-2.7.10 в кластере CentOS 6. Мой простой 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 listили module availилиmodule 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 list, module 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. Библиотека tcl anaconda несовместима с пакетом 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/

Связанный контент