【问题标题】:Django Mezzanine ImportError: No module named appsDjango Mezzanine ImportError:没有名为应用程序的模块
【发布时间】:2016-12-08 23:42:35
【问题描述】:

我有一个使用 apache 和 mod_wsgi 配置的工作夹层项目。我试图在项目中添加一个应用程序并重新启动 apache,但即使在撤消更改后,项目也会突然抛出错误。当我尝试运行 python manage.py check 时出现同样的错误:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 284, in execute
    self.validate()
  File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 310, in validate
    num_errors = get_validation_errors(s, app)
  File "/usr/lib/python2.7/dist-packages/django/core/management/validation.py", line 34, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 196, in get_app_errors
    self._populate()
  File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 75, in _populate
    self.load_app(app_name, True)
  File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 97, in load_app
    app_module = import_module(app_name)
  File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/usr/local/lib/python2.7/dist-packages/mezzanine/boot/__init__.py", line 16, in <module>
    from django.apps import apps
ImportError: No module named apps

django的路径:“/usr/local/lib/python2.7/dist-packages/django”,里面有名为“apps”的文件夹,里面有“init.py”文件文件夹。

然后我创建了一个全新的夹层项目并运行 python manage.py 检查,并得到相同的错误。这意味着没有任何夹层项目正在运行。我尝试更新和重新安装 django 和夹层但没有用。另一方面,一个简单的 django 项目运行良好。 夹层似乎有一些问题。 我经历了其他相关问题,但无法解决。任何帮助将非常感激。提前致谢。

【问题讨论】:

  • 错误是不言自明的django.apps 没有apps 模块(它有configregistry)。您应该确定要导入什么。 可能是这个 from django.apps import AppConfig.
  • 感谢您的回复。这行from django.apps import apps 预先存在于夹层目录内的许多文件中。我什至尝试删除或更改此行,但文件太多,更改它会产生一些其他错误。
  • @KapilSachdev appsdjango/apps/__init__.py 中的一个属性,请参阅this。 @OP 你用的是什么版本的 Django?

标签: python django mezzanine


【解决方案1】:

您说您的 Django 安装中有一个名为 apps 的文件夹,但回溯显示它正在执行在 1.7 中删除的代码,与引入 django.apps 的版本相同。您的安装很可能已损坏并且包含来自不同版本的文件。

从您的 Python 安装中卸载 Django,并完全删除 /usr/local/lib/python2.7/dist-pacakges/django/ 文件夹。然后,重新安装与您的 Mezzanine 版本兼容的 Django 版本。

您似乎已将 Django 安装到您的全局 Python 安装中。当多个项目需要使用不同版本的python包时,这很容易导致此类问题。建议使用virtual environment 在隔离环境中管理项目需求并防止此类冲突。

【讨论】:

  • 谢谢。我卸载了 django 和 mezzanine,删除了所有文件夹,只安装了 mezzanine,它自行安装了包括 django 在内的所有要求。终于成功了。
猜你喜欢
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 2018-03-10
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
相关资源
最近更新 更多