Problème avec django-environ et .env
Bonjour,
J'ai suivi toutes les étapes de la vidéo mais à la fin je ne peux plus lancer mon serveur, j'obtiens "Invalid line: STRIPE_API_KEY = "sk_test......"
Je ne comprends pas trop pourquoi. La seule différence est dans le fichier gitignore que je n'avais pas mais j'ai essayé de le créer et d'ajouter .env mais rien n'y fait :/
La suite de l'erreur :
Traceback (most recent call last):
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/environ/environ.py", line 403, in get_value
value = self.ENVIRON[var_name]
File "/usr/lib/python3.9/os.py", line 679, in __getitem__
raise KeyError(key) from None
KeyError: 'STRIPE_API_KEY'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/src/manage.py", line 22, in <module>
main()
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/src/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 61, in execute
super().execute(*args, **options)
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 68, in handle
if not settings.DEBUG and not settings.ALLOWED_HOSTS:
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__
self._setup(name)
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/conf/__init__.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/django/conf/__init__.py", line 170, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/src/shop/settings.py", line 137, in <module>
STRIPE_API_KEY = env('STRIPE_API_KEY')
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/environ/environ.py", line 197, in __call__
return self.get_value(
File "/home/carpentier/Documents/Python/Docstring/Formation_Django/Projets/DocShop/venv/lib/python3.9/site-packages/environ/environ.py", line 407, in get_value
raise ImproperlyConfigured(error_msg) from exc
django.core.exceptions.ImproperlyConfigured: Set the STRIPE_API_KEY environment variable
Process finished with exit code 1
Dans mon fichier settings.py, j'ai :
from pathlib import Path
import environ
env = environ.Env()
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
environ.Env.read_env(BASE_DIR / ".env")
STRIPE_API_KEY = env('STRIPE_API_KEY')
Si vous y comprenez quelque chose, je suis preneur car sur internet je n'ai rien trouvé. Ils indiquent la même procédure que Thibault. Peut-être qu'un oeil vierge verra l'erreur, qui doit être une erreur toute bête...
Merci d'avance!
Bonne journée,
Hugo
Salut PA, c'était tout à fait ça ! J'aurais pu chercher longtemps. Merci beaucoup !
J'espère que cette question en aidera d'autres :)
J'ai exactement le même traceback,
Je comprend pas pourquoi je n'arrive pas a lire STRIPE_API_KEY
settings.py :
import environ
environ.Env.read_env(BASE_DIR / ".env")
STRIPE_API_KEY = env("STRIPE_API_KEY")
.env :
STRIPE_API_KEY="<clé_secrete>"
D'où ça peut venir ?
En attendant la réponse je la met directement dans mon fichier settings.py pour pouvoir avancer un peu
Salut ,
ton fichier .env est bien dans le BASE_DIR ?
dans le message d’erreur html que te donne le serveur de développement django quand tu as lancé
python manage.py runserver
assures toi de la valeur de BASE_DIR et vérifie que tu as bien ton fichier .env à cet endroit .
dis nous si ce n’est pas ça le problème.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte