[PYTHON] Ich habe einen unbekannten Fehler in Django erhalten: TypeError: resolve () hat ein unerwartetes Schlüsselwortargument'strict 'erhalten.

Einführung

Beim Bereitstellen der erstellten Django-App auf AWS EC2 (Ubuntu16.04) ist der folgende Fehler aufgetreten, daher werde ich das Problem aufschreiben.

Details des Fehlers

Nachdem git clone das Django-Projekt in Ubuntu ausgeführt habe, habe ich python3 manage.py make migrations ausgeführt

TypeError: resolve() got an unexpected keyword argument 'strict'

Fehler wurde angezeigt.

settings.py


# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent

Es scheint, dass ein Satz von ein Fehler ist. Dies ist die Beschreibung, um den absoluten Pfad des Basisverzeichnisses abzurufen, in dem sich Django manage.py befindet.

Ich fragte mich, warum ich nicht damit herumgespielt hatte und stellte fest, dass sich die Beschreibung dieses Teils zwischen Django 3.1 und später und davor geändert hatte.

Dieses Mal habe ich lokal mit Python 3.8 + Django 3.1 entwickelt, aber ich habe bestätigt, dass Python 3.5 + Django 2.2 unter Ubuntu installiert ist, und es scheint, dass aufgrund des unterschiedlichen Versions ein Fehler vorliegt.

Das strikte Argument der Auflösungsmethode scheint seit Python3.6 hinzugefügt worden zu sein, daher ist dies wahrscheinlich die Hauptursache.

Lösungen

Ursprünglich war es notwendig, gemäß der Version von Django in Ubuntu zu entwickeln, aber dieses Mal wollte ich nur einfach versuchen, es bereitzustellen, also werde ich settings.py in die Beschreibung gemäß Django 2.2 ändern.

settings.py


#Dies ist Django 3.1 oder später
# from pathlib import Path
# BASE_DIR = Path(__file__).resolve(strict=True).parent.parent

#Traditionelle Beschreibung
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

Auf diese Weise wurde der Fehler erfolgreich behoben und die Migration war erfolgreich.

Ich denke, dass die Verwaltung von Sprach- und Framework-Versionen in der Entwicklung besonders wichtig ist, daher möchte ich in Zukunft vorsichtig sein.

Referenz

Recommended Posts

Ich habe einen unbekannten Fehler in Django erhalten: TypeError: resolve () hat ein unerwartetes Schlüsselwortargument'strict 'erhalten.
TensorFlow TypeError auflösen: __init __ () hat auf dem Mac ein unerwartetes Schlüsselwortargument'syntax 'erhalten
Ich habe einen Fehler in vim oder zsh in der Python 3.7-Serie
TypeError: __init__ () hat ein unerwartetes Schlüsselwortargument erhalten. Was tun mit 'status'?
Beim Versuch, Hello World in der Sprache Go auszuführen, ist eine Fehlermeldung aufgetreten
Ich möchte eine Fehlermeldung auf Japanisch mit dem Django-Passwortänderungsformular ausgeben
Ich habe eine Fehlermeldung erhalten, dass Python die Datei settings.ini nicht lesen konnte
Ich erhalte einen Importfehler mit Python Beautiful Soup
Ich erhalte eine Fehlermeldung, wenn ich opencv in pyautoGUI einfüge
Bei der Verwendung von Tensorboard mit Pytorch ist ein Fehler aufgetreten
Ich habe einen AttributeError erhalten, als ich die offene Methode in Python verspottet habe
Ich habe eine Fehlermeldung erhalten, als ich Composer Global Require Laravel / Installer ausgeführt habe
Wenn ich eine Fehlermeldung mit Pylint unter Windows Atom erhalte
Ich habe eine Fehlermeldung erhalten, als ich Meteor Add Accounts-Passwort ausgeführt habe
Was tun, wenn PyInstaller3.5 einen Fehler in Python3.8 verursacht (TypeError: Eine Ganzzahl ist erforderlich (Typbytes erhalten))