библиотеки Python в компьютерном кластере - PullRequest
1 голос
/ 19 сентября 2011

У меня проблема с Python, чтобы найти установленные библиотеки, когда я запускаю его в компьютерном кластере.

Когда я пытаюсь, например, загрузить numpy в сценарии:

 #file: /home/foo/test.py
 import numpy 
 print numpy.__version__

на сервере, я получаю это:

foo@abax:~$ python test.py 
1.4.1

но когда я пытаюсь запустить то же самое на узле с удаленной оболочкой, я получаю сообщение об ошибке:

foo@abax:~$ rsh -l foo ab01 "python test.py"
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    import numpy 
ImportError: No module named numpy

Есть ли способ сообщить Python, чтобы загрузить файлы, которые установлены в центральном узле кластера?

1 Ответ

1 голос
/ 19 сентября 2011

Первые вещи, которые нужно проверить:

  • Печать PYTHONPATH как на фронтальном сервере, так и на узлах кластера, чтобы убедиться в отсутствии несоответствий
  • Напечатайте numpy.__file__ на фронтальном сервере, чтобы проверить, где он находит numy. Затем немного изучите файловую систему узлов кластера, чтобы увидеть, можно ли найти numpy в том же месте (если нет, запустите поиск, чтобы увидеть, можете ли вы его найти, затем обновите свой PYTHONPATH соответственно).

Может быть, numpy установлен локально на фронтальном сервере, но не на узлах кластера. В этом случае вам нужно будет самостоятельно установить numpy в файловой системе, к которой могут обращаться узлы кластера (обратите внимание, что в научном кластере было бы лучше попросить администраторов кластера установить numpy на узлах кластера, чтобы сделать его доступным для всех) .

Если платформы достаточно похожи, копирование папки NumPy с фронтального сервера в общую файловую систему (например, в подпапку вашего домашнего каталога, которую вы добавили бы в PYTHONPATH) может работать, но чистая установка является предпочтительным.

...