为什么我得到" ImportError:无法导入名称find_spec"当我开始一个新的Django项目?

时间:2016-01-05 23:26:48

标签: django python-3.x python-3.2

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

现在我使用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

一个快速谷歌出现没有任何可以帮助我的结果。

我该怎么办?

3 个答案:

答案 0 :(得分:30)

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

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

答案 1 :(得分:3)

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

What Python version can I use with Django?

答案 2 :(得分:0)

我遇到了与docker容器相同的问题。

使用Docker容器和django 1.9和python:3.3依赖时,

find_spec不可用。 在docker镜像中添加以下行作为依赖项。 FROM python:3.4