Почему мой код Python не работает? - PullRequest
1 голос
/ 29 декабря 2010

из задачи импорта celery.decorators

from celery.decorators import task
@task()
def add(x, y):
    r = open("./abc.txt","w")
    r.write("sdf")
    r.close()
    return x + y

Это мой файл tasks.py.

>>> import tasks
>>> r = tasks.add.delay(3,5)
>>> r.result
8

Как видите, функция работает.Однако файл не создает .Зачем?

Я пытался изменить несколько путей к файлам из-за возможных проблем с разрешениями.но не повезло.

Ответы [ 3 ]

2 голосов
/ 29 декабря 2010

Если файл не записывался, вы получите исключение, поэтому функция не может быть завершена.

Поскольку функция возвращает 8, из этого следует, что файл где-то записывается.

Возможно, файл записан в каталоге, отличном от того, который вы ожидаете

Единственная другая возможность, о которой я могу подумать, - это то, что выполняемая функция добавления не та, которую вы показали здесь

1 голос
/ 30 декабря 2010
  1. Возможно, рабочий каталог не тот, который вы ожидаете.
  2. Задача может быть выполнена на другом хосте, если вы используете несколько хостов.
1 голос
/ 29 декабря 2010

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

Если это не сработает, покажите нам, где вы запускаете скрипт, и укажите ls -la в этом каталоге.И если это все еще не показывает ничего ненормального.Сделать

find / -name abc.txt

...