3

Я пытаюсь создать модуль 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 что-то сломал. Как это исправить?

2 ответа2

5

Очевидно, что установка LD_LIBRARY_PATH является плохой формой, как обсуждалось здесь, здесь и здесь. Поэтому я изменил свои злые пути и не установил LD_LIBRARY_PATH, и моя проблема была решена.

РЕДАКТИРОВАТЬ : Оказывается, корень этой проблемы заключается в разнице между системой /usr/lib64/libtcl8.5.so и /gpfs0/export/opt/anaconda-2.3.0/lib/libtcl8.5.so от anaconda . Библиотека tcl Anaconda несовместима с пакетом модулей. Решение остается тем же, но если вам нужны библиотеки anaconda, вам нужно обрабатывать их в каждом конкретном случае.

1

Я столкнулся с той же проблемой, и, используя предложение по ссылке ниже, я смог исправить проблему, не удаляя 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/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .