web-dev-qa-db-ja.com

Django 1.9 import_moduleのImportError

manage.pyを使用してrunserverまたはShellを実行しようとすると、ImportError例外が発生します。私はDjango 1.9。

ImportError: No module named 'Django.utils.importlib'
36
Matt

_Django.utils.importlib_は、Python 2.6がまだサポートされていた場合の互換性ライブラリです。 Django 1.7から廃止され、Python 2.6のサポートが廃止され、非推奨サイクルごとに1.9で削除されました。

代わりにPythonの_import_module_関数を使用します。

_from importlib import import_module
_

_Django.utils.module_loading_からインポートできる理由は、そのモジュールに_importlib.import_module_がインポートされているためです。実際には、_module_loading_が実際の関数を定義しているため、notです。

_Django.utils.module_loading.import_module_はパブリックAPIの一部ではないため、使用されなくなった場合は、いつでも削除できます(マイナーバージョンアップグレードでも)。

65
knbk

これを次の方法で解決しました。

try:
    # Django versions >= 1.9
    from Django.utils.module_loading import import_module
except ImportError:
    # Django versions < 1.9
    from Django.utils.importlib import import_module
21
Matt