1

我正在尝试在我的 django 项目中使用Github 上名为 django-audiofield 的 django 应用程序。我正在使用 Aptana Studio IDE。我将它安装在我的虚拟环境中,但出现以下错误:

Traceback (most recent call last):
    File "/Users/home/Desktop/Web Development/Aptana Studio 3.0/musicproject/src/manage.py",    line 10, in <module>
    execute_from_command_line(sys.argv)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/core/management/commands/validate.py", line 9, in handle_noargs
    self.validate(display_num_errors=True)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/core/management/base.py", line 266, in validate
    num_errors = get_validation_errors(s, app)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/core/management/validation.py", line 30, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/db/models/loading.py", line 158, in get_app_errors
    self._populate()
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/db/models/loading.py", line 67, in _populate
    self.load_app(app_name)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/db/models/loading.py", line 88, in load_app
    models = import_module('.models', app_name)
    File "/Users/home/virtualenv/venv/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
    File "/Users/home/virtualenv/venv/src/audiofield/audiofield/models.py", line 19, in <module>
    from audiofield.fields import AudioField
    File "/Users/home/virtualenv/venv/src/audiofield/audiofield/fields.py", line 20, in <module>
    from tasks import audio_convert_task
    File "/Users/home/virtualenv/venv/src/audiofield/audiofield/tasks.py", line 14, in <module>
    from celery.task import Task
  ImportError: No module named celery.task
Finished "/Users/home/Desktop/Web Development/Aptana Studio 3.0/musicproject/src/manage.py validate" execution.

请协助。

4

2 回答 2

3

我是这个包的维护者,感谢你的帖子,我意识到我们的需求中缺少 celery/django-celery。它现在已添加到最新版本中。

因此“pip install django-audiofield”将为您安装这些依赖项。如果您已经安装了 django-audiofield,您可以运行以下命令进行升级:“pip install django-audiofield --upgrade”

于 2012-10-15T23:38:14.940 回答
1

你安装了芹菜吗?如果不是,请安装 celery ( pip install celery)。如果有问题的 github 应用程序(链接会很好)在任何地方都有一个 requirements.txt 文件,请pip install -r requirements.txt安装应用程序的所有必需依赖项。

如果是,看起来您的导入搜索路径可能未正确设置以查找 Celery - 只是基于导入错误的猜测。

打开 django shell(python manage.py shell在项目的工作目录中输入)并输入import sys; print sys.path. 确保将 Celery 安装在这些目录之一中,因为sys.path它指定了 python 模块的导入搜索路径。

如果它不包含在那里,您可以通过执行临时附加安装 celery 的目录sys.path.append("<directory where celery is>")(请注意反斜杠,因为您在 Windows 上)。如果这样做之后,您可以成功from celery.tasks import Task,那么您可以PYTHONPATH适当地设置环境变量以使其永久化。

此外,由于您将 Celery 安装到virtualenv中,因此可能值得检查 django 和 Celery 是否在同一个 virtualenv 中。

最后,对 Celery 的最新提交表明Celery 现在具有原生 Django 支持,但由于尚未作为稳定版本发布,您可能需要查看django-celery.

编辑(回应下面的评论):

既然你提到你正试图让django-audiofield工作:它似乎在 pypi 上pip install django-audiofield这意味着一旦安装了所有必需的(非 python)依赖项,您就可以使用 pip(或 easy_install)来安装它,并且应该为您下载像 celery 这样的东西。

于 2012-10-15T01:41:11.607 回答