【问题标题】:Django: Import error when trying to use django-audiofield from GitHubDjango:尝试从 GitHub 使用 django-audiofield 时出现导入错误
【发布时间】:2012-10-15 01:05:29
【问题描述】:

我正在尝试在我的 django 项目中使用 django application on Github called django-audiofield。我正在使用 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.

请帮忙。

【问题讨论】:

    标签: python django aptana


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      如果是,您的 import search path 可能未正确设置以查找 Celery - 只是基于导入错误的猜测。

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

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

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

      最后,对 Celery 的最新提交表明 Celery now has native Django support,但由于尚未作为稳定版本发布,您可能需要查看 django-celery

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

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

      【讨论】:

      • 非常感谢@Casper。我很抱歉没有包含链接。这是链接:git://github.com/Star2Billing/django-audiofield.git
      • 不客气,感谢您的链接;我已提议对您的问题进行编辑以将其添加到那里。另外,如果这个答案帮助你解决了问题,请点击旁边的勾的轮廓接受它!
      • 再次感谢您。我确实做了一个“pip install django-audiofield”,但我不确定为什么 celery 没有被下载。我想我必须手动下载它。再次感谢@caspar
      猜你喜欢
      • 2015-10-10
      • 2016-08-27
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 2021-06-26
      • 2022-08-08
      相关资源
      最近更新 更多