为啥我在启动一个新的 Django 项目时会收到​​“ImportError: cannot import name find_spec”?

Posted

技术标签:

【中文标题】为啥我在启动一个新的 Django 项目时会收到​​“ImportError: cannot import name find_spec”?【英文标题】:Why do I get "ImportError: cannot import name find_spec" when I start a new Django project?为什么我在启动一个新的 Django 项目时会收到​​“ImportError: cannot import name find_spec”? 【发布时间】:2016-04-09 22:50:43 【问题描述】:

我正在与 Django 一起学习 Python。我最初在我的机器 (Debian Wheezy) 上安装了 Python 3,但阅读了可能的冲突并将其删除有些困难。

现在我使用 virtualenv 并使用 pip 在 env 和 Django 中安装了 python3。 Django 和 Python 似乎安装正确:

# python -c "import django;  print(django.get_version())"
1.9.1
# python -V
Python 3.2.3`

但是当我尝试启动一个新的 Django 项目时,我得到以下信息:

# django-admin.py startproject mysite
Traceback (most recent call last):
  File "/home/rialaado/Projects/webenv/bin/django-admin.py", line 2, in <module>
    from django.core import management
  File "/home/rialaado/Projects/webenv/lib/python3.2/site-packages/django/core/management/__init__.py", line 10, in <module>
    from django.apps import apps
  File "/home/rialaado/Projects/webenv/lib/python3.2/site-packages/django/apps/__init__.py", line 1, in <module>
    from .config import AppConfig
  File "/home/rialaado/Projects/webenv/lib/python3.2/site-packages/django/apps/config.py", line 6, in <module>
    from django.utils.module_loading import module_has_submodule
  File "/home/rialaado/Projects/webenv/lib/python3.2/site-packages/django/utils/module_loading.py", line 67, in <module>
    from importlib.util import find_spec as importlib_find
ImportError: cannot import name find_spec

快速谷歌搜索没有任何结果可以帮助我。

我该怎么办?

【问题讨论】:

【参考方案1】:

find_spec 在 Python 3.2.3 中不可用;是added in Python 3.4。

尝试升级到 3.4 或更高版本。

【讨论】:

【参考方案2】:

我在使用 docker 容器时遇到了同样的问题。

在使用 Docker 容器和 django 1.9 和 python:3.3 依赖项时,find_spec 不可用。 在您的 docker 映像中添加以下行作为依赖项有效。 FROM python:3.4

【讨论】:

【参考方案3】:

您使用的 Django 版本 (v1.9.1) 不能与 Python 3.2 一起使用。因此,@KarthiG 和 @MUNGAI NJOROGE 是正确的,现在您知道为什么了。

What Python version can I use with Django?

【讨论】:

我正在使用 Django 1.9 和 Python 3.4

以上是关于为啥我在启动一个新的 Django 项目时会收到​​“ImportError: cannot import name find_spec”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在启动模拟器时会收到此 GRPC 错误“WARNING: EmulatorService.cpp:448: Cannot find certfile”?

为啥我在我的 Django 项目中不断收到此“名称‘模型’未定义”错误?

Scikit-learn GridSearchCV - 为啥我在执行 grid.fit() 时会收到数据类型错误?

为啥我在 Django 中收到“MySQL 服务器已消失”异常?

Django:为啥当我在 django 中通过 popen 使用 Ghostscript 时会出现“找不到文件”错误

为啥我在尝试使用 HttpListener 时会收到“AccessDenied”? [复制]