2013-06-28 2 views
0

Я пытаюсь запустить эту строку:ул не отозваны TypeError с очередями и процессами

print '%s queued as job %r' % (job.name(), jobs_queued.qsize()) 

, и я получаю эту ошибку, указывая на этой линии:

TypeError: 'str' object is not callable 

оглядевшись, я заметил, что это ошибка была вызвана прежде всего использованием «str» в качестве переменной, однако я не сделал ничего подобного. Может ли кто-нибудь дать им понимание?

jobs_queued является Queue(), и работа является процессом()

jobs_queued = Queue() 
job = multiprocessing.Process(name=phi_dir, target=task, args=(phi_dir,)) 

phi_dir является строкой, то задача является функцией, которая вызывает скрипт.

+0

Эта ошибка обычно возникает из-за того, что вы пытаетесь использовать объект типа str, как если бы это была функция, то есть: s (a) где s - строка. Я не думаю, что это связано с попыткой назвать переменную str. Для вашего кода должно быть что-то большее - эта строка работает для меня, если я использую («привет», 12) как кортеж. job.name() выглядит подозрительно. –

+0

, как указано в пункте пыльника :) Извините, что ящик для редактирования был слишком длинным. –

+0

Как вы заметили, вы посмотрели 'multiprocessing.Pool'? Это может позаботиться о многом из того, что вы пытаетесь сделать здесь. –

ответ

1

Мне бы пришлось посмотреть, но я на планшете. Скорее всего, job.name - это строка, а не метод экземпляра. Попробуйте удалить скобки из job.name().

+0

Это он, спасибо – user2510173