Подтвердить что ты не робот

Почему я получаю "ImportError: не могу импортировать имя find_spec" при запуске нового проекта Django?

Я изучаю Python в тандеме с Django. Первоначально я установил Python 3 на свою машину (Debian Wheezy), но прочитал о возможных конфликтах и ​​с легкостью удалил ее.

Теперь я использую virtualenv и устанавливаю python3 в env и Django, используя pip. Кажется, что 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

Быстрый google не показал никаких результатов, которые помогли бы мне.

Что мне делать?

4b9b3361

Ответ 1

find_spec недоступен в Python 3.2.3; это было добавлено в Python 3.4.

Попробуйте выполнить обновление до 3.4 или новее.

Ответ 3

У меня такая же проблема с контейнерами докеров.

find_spec недоступен при использовании контейнеров Docker и django 1.9 и python: 3.3. Добавление строки ниже в образ вашего докера, как работает зависимость. FROM python:3.4