Closed CharlesGaydon closed 4 years ago
J'ai corrigé une typo à ce pull request dans https://github.com/dataforgoodfr/batch7_rse/commit/df56fca6e3cf38388893725e6dfda3a9b8d5ebae
Ok, merci :)
Par contre du coup ça me crée une autre erreur lors du lancement du serveur (branche version_brouillon
):
from polls.rse_model.rse_watch.indexer import nlp
ImportError: cannot import name 'nlp' from 'polls.rse_model.rse_watch.indexer' (/home/renaud/projects/batch7_rse/webapp/polls/rse_model/rse_watch/indexer.py)
Comme la variable nlp
est dans le main, on y a plus accès en faisant l'import !
Sais tu comment on pourrait résoudre ce problème ?
Désolé ^^ j'ai l'impression qu'on passe de problème en problème :p mais je sens qu'on va finir par y arriver !! :)
Autre chose, comme tu peux le voir, les imports partent de webapp (exemple :
from polls.rse_model.rse_watch.indexer import nlp
),
car c'est de là qu'est lancée l'aplication par python manage.py runserver
Si tu veux, je peux ouvrir une issue pour cela ?
Je réouvre l'issue du coup
Oui, car l'objet nlp est à créer, cf. les dernières lignes de mon premier message:
import [...].indexer as indexer
import [...].conf as conf
nlp = indexer.load_weighted_vectorizer(conf.Config)
J'ouvre une issue pour régler le problème du démarrage de docker durant lequel on a la trace suivante:
Il y a en fait deux problème distincts:
Pour le premier point, c'est un comportement de test : j'exige que le modèle soit créer "from scratch" pour vérifier que tout fonctionne sans soucis: https://github.com/dataforgoodfr/batch7_rse/blob/65c757e37cfe44061e8c37cfda72842dc5c8139b/webapp/polls/rse_model/rse_watch/indexer.py#L109 Ca fonctionne ainsi : create_from scratch = True -> je supprime le modèle -> je laisse load_weight_vectorizer le recréer.
Je vais commenter ces quelques lignes pour que tu n'ai pas ce soucis.
Pour le second point, je pense que c'est du au fait que la ligne https://github.com/dataforgoodfr/batch7_rse/blob/65c757e37cfe44061e8c37cfda72842dc5c8139b/webapp/polls/rse_model/rse_watch/indexer.py#L117 qui est celle où le modèle est chargé, et crée si il n'existait pas, n'est pas dans un main, et est donc appelée à chaque fois que indexer est importé.
Solution: je vais mettre le tout dans un main, pour ne pas que la ligne soit lancée à l'import. Depuis un autre script, l'usage sera alors quelque chose comme: