导入错误:没有名为 django 的模块 - 用于特定项目

Posted

技术标签:

【中文标题】导入错误:没有名为 django 的模块 - 用于特定项目【英文标题】:Import Error: No module named django - for specific project 【发布时间】:2017-04-09 01:45:18 【问题描述】:

我已经在我的 Ubuntu 16.04 中安装了 Django(1.8.2)。 当我将一个工作项目克隆到其中并运行服务器时,出现以下错误。

Traceback (most recent call last):
    File "manage.py", line 31, in <module>
      execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/django/core/management/__init__.py", line 338,  in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/usr/lib/python2.7/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/lib/python2.7/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/lib/python2.7/django/apps/config.py", line 119, in create
    import_module(entry)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
  __import__(name)
ImportError: No module named django

观察:

我可以开始一个新项目并运行它的服务器。

settings.pyINSTALLED_APPS的值为:

INSTALLED_APPS = (
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'Telecommands',
   'Telemetry',
   'captcha',
   'django.contrib.sitemaps',
   'djcelery',
   'kombu.transport.django',
   # 'grappelli',
   # 'chronograph',
   # 'registration', # Include the registration
)

我尝试了什么?

使用pip install django==1.8.2 安装django。 由于参考/usr/lib/python2.7/报错, 我试过了:sudo pip install --install-option="--install-purelib=/usr/lib/python2.7/site-packages/" --ignore-installed django==1.8.2 此外,当我对路径感到困惑时/usr/local/lib/python2.7/dist-packages,/usr/lib/python2.7/dist-packages/~/.local/lib/python2.7/dist-packages。 我将 django(1.8.2) 安装到这些路径中的每一个, 并行更新PYTHONPATH。 我确实没有在安装时遇到任何错误。

谁能帮帮我。请解释错误的原因。

【问题讨论】:

问题已更新为INSTALLED_APPS vaule。 最新的 Django 1.8.x 版本目前是 1.8.16。如果您运行的是 1.8.2,那么您缺少几个安全修复程序。 【参考方案1】:

回溯显示错误发生在/usr/lib/python2.7/django/__init__.py,因此manage.py 清楚地找到了您的Django 安装。顺便说一句,使用虚拟环境比安装在/usr/lib/python2.7/site-packages/ 中要好得多。

问题似乎是您的INSTALLED_APPS 中有kombu.transport.django。 Django transport was removed from kombu in 4.0。

【讨论】:

您的修复成功了。它在我的队友笔记本电脑上运行良好。具有相同的配置。 (长背安装)。 :) 如果它在你队友的笔记本电脑上工作,他们可能安装了kombu 您能否解释一下这是如何导致问题的。我有点惊讶模块中的错误以某种方式“掩盖”另一个错误。 您收到错误是因为您的INSTALLED_APPS 中有kombu.transport.django,但它不存在。同样,如果您在INSTALLED_APPS 中有kombu.transport.foobar,那么您将收到错误ImportError: No module named foobar。在这种情况下,问题出在哪里会更清楚,因为名称不会冲突。

以上是关于导入错误:没有名为 django 的模块 - 用于特定项目的主要内容,如果未能解决你的问题,请参考以下文章

Django 导入错误 - 没有名为 django.conf.urls.defaults 的模块

django 导入错误 - 没有名为 core.management 的模块

视图中的 Django 导入错误 - 没有名为“x”的模块

升级到 Django 1.7。导入错误:没有名为仪表板的模块

Django + uwsgi + nginx。导入错误:没有名为py的模块

Django 1.8 和 Rest Framework 3.7 的“导入错误:没有名为 urls 的模块”