2013-11-21 5 views
0

Я пытаюсь отправить задание через qsub myScript.sh -cwd, где скрипт оболочки запускает скрипт Python-2.7, myPython.py.qsub и python импортирует .py модули, но возвращает ImportError для .pyf

# myScript.sh 
    python2.7 myPython.py 

Теперь myPython.py потребности импортировать пакет Python, который хранится в моем локальном каталоге, так что сценарий начинается с

# myPython.py 
    import sys 
    sys.path.append('/file/path/for/package') 
    import package 

После отправки задания в файл журнала содержит следующий вывод Python:

ImportError: No module named problem_c 

Эта ошибка возникает после того, как несколько модулей были импортированы из *.py файлов без возврата ошибок, поэтому я метрономы что это не проблема с этим путем. Единственное различие, которое я нахожу, состоит в том, что файл problem_c заканчивается на .pyf (т. Е. problem_c.pyf). Он хранится в том же каталоге, что и модули, заканчивающиеся на .py.

Когда я запускаю сценарий локально, как python2.7 myPython.py, эта ошибка не возникает при загрузке пакета. Тем не менее, задание слишком интенсивно для заполнения памяти, не отправив его в очередь. Почему модули, написанные как файлы .pyf обрабатываются по-разному, когда я использую qsub, и как их импортировать в этом случае?

(если это имеет значение, кластер я работаю был создан с Sun Grid Engine.)

Спасибо за ваши мысли.

+0

Является ли файл '.pyf'' pyfort' (Fortran in Python)? Если да, у вас есть «pyfort», установленный на вашей локальной машине, но не на кластерных машинах? – dg99

+0

не должно быть 'sys.path.append (0, '/ file/path/for/package')'? – tobspr

+0

@TobSpr Я получаю сообщение об ошибке: 'sys.path.append' принимает только 1 аргумент, когда я пытаюсь это сделать. – biostdave

ответ

0

Или f2py. Очевидно, вы не добавили модуль в свой кластер.

+0

Чтобы ответить на этот вопрос, вы должны это уточнить. теперь это всего лишь комментарий. – alko

+0

Я нашел локально 'f2py', так объясняет, почему модуль' .pyf' работает, когда я не запускаюсь в кластере? Каков самый простой способ «добавить модуль» в кластер? – biostdave

 Смежные вопросы

  • Нет связанных вопросов^_^