ImportError: 'django.core.urlresolvers'という名前のモジュールはありません


167

入力用のフォームを作成する必要があるDjangoプロジェクトに取り組んでいます。からインポートしようとしreverseましたdjango.core.urlresolvers。エラーが発生しました:

line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'

Python 3.5.2、Django 2.0、MySQLを使用しています。


1
djangoがPATHにインストールされていないようです。
–HåkenLid 2017

回答:


347

Django 2.0はバージョン1.10 django.core.urlresolversに移動さdjango.urlsれたモジュールを削除します。次のように、django.urlsを使用するようにインポートを変更する必要があります。

from django.urls import reverse

Django 2.0は以前ににあったいくつかの機能を削除するdjango.core.urlresolversため、コードが機能する前にさらに変更が必要になる場合があることに注意してください。これらの追加変更の詳細については、1.9廃止され機能を参照してください。


1
サードパーティのモジュールにこのエラーがあります。どうすれば解決できますか?モジュールを編集することはできますが、修正されていない新しいバージョンにアップグレードするとどうなりますか?オーバーライドすることは可能ですか?
ファビオ2018年

プルリクエストを更新してサードパーティモジュールに送信することができます
Gajit

62

リバースをインポートしたい場合は、からインポートします django.urls

from django.urls import reverse

27

次のものをすべて置き換える必要があります。

from django.core.urlresolvers import reverse

に:

from django.urls import reverse

ここに画像の説明を入力してください

注:同じことがreverse_lazyにも適用されます。

パスの置換を開始するためのPycharm Cmd+ Shift+ R内。


私は同じエラーを受け取り、これを試しましたが、<module>のエラーファイル「C:\ Users \ displ \ Code \ .virtualenvs \ dev \ lib \ site-packages \ cms \ utils \ i18n.py」の4行目を取得しましたdjango.core.urlresolvers import get_resolver、LocaleRegexURLResolver ModuleNotFoundError: 'django.core.urlresolvers'という名前のモジュールはありませんでした。すべての参照を置き換えて、正しい答えを実行する必要がありました。しかし、Djangoはひどいものですが、多くのことは最初からうまくいきません。
リッチビアンコ

3

Travisビルドを作成しようとしている可能性がある場合、Djangoがrequirements.txtファイルからインストールされるデフォルトのパスは、django_extensionsモジュールが更新されていないリポジトリを指します。現時点での唯一の回避策は、pipを使用してmasterブランチからインストールすることです。そこでパッチが作られます。しかし、今のところ、待つ必要があります。

それまでの間、これを試すことができます。

- pip install git+https://github.com/chibisov/drf-extensions.git@master

- pip install git+https://github.com/django-extensions/django-extensions.git@master




1

TravisCIでのビルドがこの特定の理由で失敗する場合、requirements.txtのDjango Extensionsを更新することで問題を解決できます

pip install --upgrade django-extensions

これにより、Django 2+モジュールを使用するように拡張機能が更新されます。


1

Djangoの上位バージョンでurlresolverが削除されました-djangoインストールをアップグレードしてください。以下のコマンドで修正しました。

pip install django==2.0 --upgrade

1

これを解決するには、Django2.0. pipinstall 未満のバージョンにダウングレードしますDjango==1.11.29

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.