Beim Bereitstellen der erstellten Django-App auf AWS EC2 (Ubuntu16.04) ist der folgende Fehler aufgetreten, daher werde ich das Problem aufschreiben.
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.
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.
Recommended Posts