web-dev-qa-db-ja.com

新しいDjangoプロジェクトを開始すると、なぜ「ImportError:name find_specをインポートできません」と表示されるのですか?

私はPython Djangoと連携して学習しています。最初にPython 3をマシン(Debian Wheezy)にインストールしました)が、起こり得る競合について読んで、いくつかの困難。

今、virtualenvを使用しており、env内にpython3をインストールしています。Django using pip。Django and 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

簡単なグーグルは私に役立つ結果を何も見つけませんでした。

私は何をすべきか?

23
Axolotl

find_specはPython 3.2.3;では使用できません。それは Python 3.4 で追加されました。

3.4以降にアップグレードしてみてください。

30
KarthiG

Django(v1.9.1)のバージョンは、Python 3.2では使用できません。したがって、@ KarthiGと@MUNGAI NJOROGEは正しいです。今、あなたは理由を知っています。

Python Djangoで使用できるバージョンは?

3
Ryan Balfanz

Dockerコンテナでも同じ問題が発生しました。

dockerコンテナとDjango 1.9およびpython:3.3依存関係を使用している場合、find_specは使用できません。依存関係が機能するように、Dockerイメージに以下の行を追加してください。FROM python:3.4

0
MUNGAI NJOROGE