Kirjoittaja Aihe: (RATKAISTUPython) The SECRET_KEY setting must not be empty - kun se ei ole tyhjä  (Luettu 4570 kertaa)

JA5U

  • Käyttäjä
  • Viestejä: 463
    • Profiili
Hei

Saan em. virheen, kun muokkasin settings.py:ta.
Eilen toimi vielä aivan hyvin ja tänään lisäsin tiedoston loppuun asetuksia, jonka jälkeen valittaa tätä.
Vaikka poistan uudet asetukset, niin silti valittaa.

Alkaa muistuttamaan pitkälti Drupalia kaikkine välimuistiihmetyksineen tai ole ainakaan yhtään sen vakaampaa kehittämistä.
Voihan se toki olla tekijässäkin vika, mutta aika erikoisia ovat nämä virheet...

Koodia: [Valitse]
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/admin/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "/home/admin/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/admin/.local/lib/python3.5/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/admin/.local/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 61, in execute
    super().execute(*args, **options)
  File "/home/admin/.local/lib/python3.5/site-packages/django/core/management/base.py", line 335, in execute
    output = self.handle(*args, **options)
  File "/home/admin/.local/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 70, in handle
    if not settings.DEBUG and not settings.ALLOWED_HOSTS:
  File "/home/admin/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/home/admin/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/admin/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 106, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/var/www/html/kk-app/kk_project/kk_project/settings.py", line 14, in <module>
    from leaflet import LEAFLET_CONFIG
  File "/home/admin/.local/lib/python3.5/site-packages/leaflet/__init__.py", line 32, in <module>
    LEAFLET_CONFIG = getattr(settings, 'LEAFLET_CONFIG', {})
  File "/home/admin/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/home/admin/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/admin/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 125, in __init__
    raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

« Viimeksi muokattu: 01.05.18 - klo:14.23 kirjoittanut JA5U »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-SECRET_KEY
Kai siellä settings.py-tiedostossa on Djangon luoma SECRET_KEY? Se luodaan projektia luotaessa.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

JA5U

  • Käyttäjä
  • Viestejä: 463
    • Profiili
https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-SECRET_KEY
Kai siellä settings.py-tiedostossa on Djangon luoma SECRET_KEY? Se luodaan projektia luotaessa.

Yritin tuossa otsikossa sanoa, että ei ole tyhjä. Sovellus myös toimi eilen aivan normaalisti, kunnes tänään möksähti.
Muistelisin, että teki saman joskus aiemminkin ja silloin taisin poistaa noita pyc tiedostoja ja aloittaa alusta.

Tympäsee, kun ei ikinä pääse tekemään sitä varsinaista kehittämistä vaan aika menee 95 % kaikkeen muuhun säätämiseen.  :-\
Eikä noita "resetointejakaan" viitsi olla aina tekemässä, tuskin kuuluukaan ja jos kuuluu, niin siitä pitäisi mainita jossain  8)

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-SECRET_KEY
Kai siellä settings.py-tiedostossa on Djangon luoma SECRET_KEY? Se luodaan projektia luotaessa.

Yritin tuossa otsikossa sanoa, että ei ole tyhjä. Sovellus myös toimi eilen aivan normaalisti, kunnes tänään möksähti.
Muistelisin, että teki saman joskus aiemminkin ja silloin taisin poistaa noita pyc tiedostoja ja aloittaa alusta.

No niinpäs onkin. Jostain syystä otsikossa kerrottu tieto, jota ei ole viestissä, tahtoo mennä itseltäni ohi silmien. ::) Yleensä pyc-tiedostoja ei kyllä tarvitse poistella, mutta eipä siitä mitään haittaakaan ole. Käytännössä ne __pycache__-hakemistot voi poistella kokonaan, jos haluaa. Oletko tarkistanut, että Django käyttää oikeaa settings.py-tiedostoa? Tosin jos olet vain luonut projektin (etkä esimerkiksi säädä jonkun hienomman alustan kanssa) ja käytät manage.py:ä komentoihin, niin sen ei pitäisi olla ongelma.

Tympäsee, kun ei ikinä pääse tekemään sitä varsinaista kehittämistä vaan aika menee 95 % kaikkeen muuhun säätämiseen.  :-\
Eikä noita "resetointejakaan" viitsi olla aina tekemässä, tuskin kuuluukaan ja jos kuuluu, niin siitä pitäisi mainita jossain  8)

Ei vastaa omaa kokemustani Django-kehityksestä eli jotain menee jossain pieleen.

Muokkaus: Katsoin tarkemmin tuota traceback-listausta ja siellä on tuo Leaflet, joka ei edelleenkään ole itselleni tuttu järjestelmä, mutta syy lienee siellä. Django itsessään toimii yleensä aika hyvin. Näyttäisi vähän siltä, että improttaat siellä settings.py:ssä Leafletistä jotain, mikä haluaisi, että ne asetukset on jo määritelty ja tästä syntyy ongelma. En tiedä riittäisikö, jos tuon SECRET_KEY:n määritelmän siirtäisi ylemmäs siellä settings.py-tiedostossa. Luultavasti tuota LEAFLET_CONFIG:a ei ole tarkoitus importata settings.py:hyn (arvailen vain).

Muokkaus: Typokorjaus.
« Viimeksi muokattu: 01.05.18 - klo:14.51 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

JA5U

  • Käyttäjä
  • Viestejä: 463
    • Profiili
https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-SECRET_KEY
Kai siellä settings.py-tiedostossa on Djangon luoma SECRET_KEY? Se luodaan projektia luotaessa.

Yritin tuossa otsikossa sanoa, että ei ole tyhjä. Sovellus myös toimi eilen aivan normaalisti, kunnes tänään möksähti.
Muistelisin, että teki saman joskus aiemminkin ja silloin taisin poistaa noita pyc tiedostoja ja aloittaa alusta.

No niinpäs onkin. Jostain syystä otsikossa kerrottu tieto, jota ei ole viestissä, tahtoo mennä itseltäni ohi silmien. ::) Yleensä pyc-tiedostoja ei kyllä tarvitse poistella, mutta eipä siitä mitään haittaakaan ole. Käytännössä ne __pycache__-hakemistot voi poistella kokonaan, jos haluaa. Oletko tarkistanut, että Django käyttää oikeaa settings.py-tiedostoa? Tosin jos olet vain luonut projektin (etkä esimerkiksi säädä jonkun hienomman alustan kanssa) ja käytät manage.py:ä komentoihin, niin sen ei pitäisi olla ongelma.

Tympäsee, kun ei ikinä pääse tekemään sitä varsinaista kehittämistä vaan aika menee 95 % kaikkeen muuhun säätämiseen.  :-\
Eikä noita "resetointejakaan" viitsi olla aina tekemässä, tuskin kuuluukaan ja jos kuuluu, niin siitä pitäisi mainita jossain  8)

Ei vastaa omaa kokemustani Django-kehityksestä eli jotain menee jossain pieleen.

Muokkaus: Katsoin tarkemmin tuota traceback-listausta ja siellä on tuo Leaflet, joka ei edelleenkään ole itselleni tuttu järjestelmä, mutta syy lienee siellä. Django itsessään toimii yleensä aika hyvin. Näyttäisi vähän siltä, että improttaat siellä settings.py:ssä Leafletistä jotain, mikä haluaisi, että ne asetukset on jo määritelty ja tästä syntyy ongelma. En tiedä riittäisikö, jos tuon SECRET_KEY:n määritelmän siirtäisi ylemmäs siellä settings.py-tiedostossa. Luultavasti tuota LEAFLET_CONFIG:a ei ole tarkoitus improtatta settings.py:hyn (arvailen vain).
Juurin kokeilin tuota itsekin ja sehän oli se syy :) En tiedä, että onko se jollain toiminut, koska jostain esimerkistä se on bongattu.
Tosin, ne esimerkit on usein niin itsetietoisia, että ei ole ihme vaikka olisi väärään paikkaan kopioitu.
Toisaalta taas, ihan luonnollinen sijainti tuolle LEAFLET_CONFIGin importille, mutta logiikan puolesta kenties ihan väärä.
« Viimeksi muokattu: 01.05.18 - klo:14.24 kirjoittanut JA5U »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Juurin kokeilin tuota itsekin ja sehän oli se syy :) En tiedä, että onko se jollain toiminut, koska jostain esimerkistä se on bongattu.
Tosin, ne esimerkit on usein niin itsetietoisia, että ei ole ihme vaikka olisi väärään paikkaan kopioitu.
Toisaalta taas, ihan luonnollinen sijainti tuolle LEAFLET_CONFIGin importille, mutta logiikan puolesta kenties ihan väärä.

En oikein ymmärrä, miksi se pitäisi importata asetuksiin, koska tuolla leafletin koodissa se nimenomaan haetaan asetuksista eli tavallaan mennään kehää. Toisaalta Djangossa ohjelmien pitäisi itse määritellä järkevät oletukset asetuksille, jos niitä ei ole käyttäjä määritellyt, tai sitten valittaa niiden puutteesta (kuten SECRET_KEY:n tapauksessa).

Mutta hyvä että selvisi.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.