Ich habe ein neues Projekt mit Cookiecutter Django erstellt. Ich setze die Umgebungsvariable DJANGO_READ_DOT_ENV_FILE = True (setzt es auf False verursacht auch die .env-Datei gelesen werden BTW. Ich denke, dass Python davon ausgeht, dass die Umgebungsvariable von True ist eine Zeichenfolge nicht bool).Django Runserver Start mit lokalen Einstellungen, wenn die Produktion in .env Datei identifiziert wurde
In der .env Datei gibt es die folgende Zeile ein:
DJANGO_SETTINGS_MODULE=config.settings.production
Wenn ich laufen
python manage.py runserver
ich folgende Ausgabe:
Loading : /home/bucket/src/b2b/.env
The .env file has been loaded. See common.py for more information
Loading : /home/bucket/src/b2b/.env
The .env file has been loaded. See common.py for more information
Performing system checks...
System check identified no issues (0 silenced).
February 14, 2017 - 20:20:55
Django version 1.10.5, using settings 'config.settings.local'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Nach der oben ist die Serverkonfiguration config.settings.local. Ich weiß, dass die .env-Datei geladen wird, da die DATABASE_URL
-Variable korrekt ist und eine Verbindung zur Datenbank herstellt.
Es sieht auch so aus, als ob der Code zum Laden von Variablen aus der .env-Datei zweimal ausgeführt wird. Ich gebe einige print-Anweisungen in common.py und local.py ein, um die Ausführung mit den folgenden Ergebnissen zu verfolgen.
Loading : /home/bucket/src/b2b/.env
The .env file has been loaded. See common.py for more information
End of common.py <--
End of local.py <--
Loading : /home/bucket/src/b2b/.env
The .env file has been loaded. See common.py for more information
End of common.py <--
End of local.py <--
Performing system checks...
System check identified no issues (0 silenced).
February 14, 2017 - 20:22:40
Django version 1.10.5, using settings 'config.settings.local'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Jede Hilfe oder Erklärung für dieses Verhalten wäre willkommen.
Ich glaube, Sie könnten ein paar Probleme in Cookiecutter getroffen haben -Django. [Ausgabe 1039] (https://github.com/pydanny/cookiecutter-django/issues/1039) sollte das Problem beheben, bei dem die Umgebung gelesen wird, wenn 'DJANGO_READ_DOT_ENV_FILE = False 'ist. [Dieses Commit] (https://github.com/pydanny/cookiecutter-django/commit/3cd57880e0bfa3d48ecd338fabe7f74e71800f01) könnte das Problem beheben, dass die Umgebung zweimal gelesen wurde. – Alasdair
Ich habe den redundanten env Anruf entfernt und es wird immer noch zweimal angerufen. Ich war die Person, die die Ausgabe 1039 eingereicht hat :-) –
Die Einstellungsdateien werden nur zweimal geladen, wenn runserver ausgeführt wird. Wenn ich einen migrate-, shell- oder anderen Befehl ausführe, werden sie nur einmal ausgeführt. –