[Django] エラーと対処方法

cannot import name ‘parse_header’ from ‘django エラー

状況

「runserver」時に以下のエラーが出て立ち上がらない。

「corsheaders」パッケージをインストールするときに間違ったコマンドを打ってしまい、Django3.0系統がDjango5.0系になってしまっていた。

エラー文の最後が「(/usr/local/lib/python3.11/dist-packages/django/http/multipartparser.py)」と表示されていたのでdjangoパッケージを確認してみたところ、バージョンが「Django-5.0.1.dist-info」に変わっていました。

対処方法

まずはDjangoを一度アンインストール

Djangoのバージョンを指定してアンインストールしようとしてもうまく行かないのでdjangoパッケージを指定してアンインストールしました。

「django」「Django-5.0.1.dist-info」の両方が消えました。

バージョン3系を再インストール

これでうまくrunserverできるようになりました。

cannot import name ‘parse_header’

django-debug-toolbarをインストールしたら下記のようなエラーが出てしまいました。こちらも上記と原因は一緒でバージョン指定の問題です。

ImportError raised when trying to load ‘rest_framework.templatetags.rest_framework’: cannot import name ‘parse_header’ from ‘django.http.multipartparser’

原因はdjango-debug-toolbarのインストール時にバージョンをしてしなかったので最新のものがインストールされ、同時にDjango REST Framework及びDjangoのバージョンが新しいものに変わってしまったようです。

Django , DRF をアンインストールし、元々入っていたバージョンを指定してインストールしたら正常に動くようになりました。



Author: webmaster