J'ai un script qui écrit la sortie dans des fichiers.

Le problème est qu'il écrira le fichier à différents emplacements en fonction de son origine.

Existe-t-il un moyen de définir un paramètre BASE_DIR pour que tous les scripts de ce package écrivent des fichiers vers un seul emplacement?

J'ai essayé d'initialiser ceci à la racine du projet dans les racines {{0}}:

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

Dans mes tests, ce code n'est pas exécuté comme:

*** NameError: name 'BASE_DIR' is not defined
4
surfer190 14 mars 2019 à 15:00

2 réponses

Meilleure réponse

Je pense qu'il vous suffit d'importer la variable BASE_DIR dans chaque module que vous l'utilisez.

Si 'my_pkg' est le répertoire racine de votre paquet, alors vous devriez faire quelque chose comme ça :

my_pkg/__init__.py :

BASE_DIR = ... # as you have


my_pkg/some_module.py :

from my_pkg import BASE_DIR 
2
dvitsios 14 mars 2019 à 12:08

Supposons que le nom de votre package soit mypackage. Après avoir ajouté BASE_DIR dans mypackage/__init__.py, vous devez toujours ajouter cette ligne au-dessus de chaque script dans mypackage:

from mypackage import BASE_DIR

De cette façon, vous pouvez accéder à BASE_DIR à partir de chaque script du package.

0
Hiadore 14 mars 2019 à 12:23