2015-11-26 3 views
0

У меня возникли проблемы с пониманием концепции пути python. Моя программа не находит мои классы при запуске программы. Что мне делать?Не удается найти мой модуль

Я запускаю свою программу с помощью этого сценария [1], и я делаю это так [2]. Файлы и подкаталоги python находятся в [3]. Я установил PYTHONPATH в [4], хотя я не знаю, должен ли я это делать.

[1] Скрипт для запуска программы

#!/bin/bash 
set -xv 

export C_FORCE_ROOT="true" 
HOST_NAME=`hostname` 

MEDUSA_HOME=$HOME/Programs/medusa-2.0 

echo "------------------------" 
echo "Initialize celery at $HOST_NAME" 
echo "------------------------" 
CELERY_RDB_HOST=192.168.10.113 
CELERY_RDB_PORT=6913 
celery worker -n ${HOST_NAME} -E --loglevel=DEBUG --concurrency=5 -f ./logs/celerydebug.log --config=celeryconfig -Q ${HOST_NAME} 

[2] Как запустить программу

~/Programs/medusa-2.0$ ./bin/celery-debug.sh 

[3] питон расположения файлов

~/Programs/medusa-2.0/medusa 

[4] Путь Python

export MEDUSA_HOME=$HOME/Programs/medusa 
export PYTHONPATH=${PYTHONPATH}:$MEDUSA_HOME/medusa:$MEDUSA_HOME/tests 
+0

Я не уверен, что вы спрашиваете здесь. Если вы хотите, чтобы сельдерей загружал ваши задачи, вам нужно передать опцию '-A':' celery -A medusa worker ... '. –

+0

Я говорю, что мои файлы python не могут быть найдены, когда я запускаю сельдерей. Я обновил PYTHONPATH, чтобы «экспортировать MEDUSA_HOME = $ HOME/Programs/medusa-2.0', и теперь он работает. – xeon123

+0

Один раз вы используете '$ HOME/Programs/medusa-2.0', а другие' $ HOME/Programs/medusa' - эти два разных каталога или это просто ошибка при вставке здесь? – Maciek

ответ

0

Я обновил PYTHONPATH для экспорта MEDUSA_HOME = $ HOME/Программы/medusa-2.0, и теперь он работает.