Je suis relativement novice en matière de Python. Je cherche à créer un module "settings" où seront stockées diverses constantes spécifiques à une application.
Voici comment je veux configurer mon code :
paramètres.py
CONSTANT = 'value'
script.py
import settings
def func():
var = CONSTANT
# do some more coding
return var
Je reçois une erreur Python qui dit :
global name 'CONSTANT' is not defined.
J'ai remarqué sur le code source de Django leur settings.py
a des constantes nommées comme moi. Je ne sais pas comment les importer dans un script et les référencer dans l'application.
EDIT
Merci pour toutes vos réponses ! J'ai essayé ce qui suit :
import settings
print settings.CONSTANT
Je reçois la même erreur
ImportError: cannot import name CONSTANT
5 votes
Cela n'a pas de sens. Vous devriez recevoir un
AttributeError
sisettings
ne définit pasCONSTANT
et unImportError
s'il ne peut pas importer les paramètres, auquel cas il ne regarderait même pas àCONSTANT
0 votes
Est-ce que je fais quelque chose de mal alors ?
1 votes
Mettez les deux lignes que vous avez postées en dernier dans un fichier par lui-même exactement comme vous les avez postées et voyez si cela fonctionne.
1 votes
Merci à tous pour votre aide. J'ai trouvé la solution. Cela avait à voir avec le placement de la init .py. J'essayais d'importer settings pour que python ne le trouve pas, donc une fois que j'ai référencé le répertoire "modules" dans lequel settings se trouvait, tout a fonctionné correctement. Donc, en gros, mon instruction d'importation ressemble à ceci : from modules import settings. Je pense qu'il y a une meilleure façon de faire, une façon plus pythonique, donc je vais essayer différentes combinaisons. Encore une fois, merci pour toutes vos réponses.