mobility-team / mobility

Mobility, an open-source library for mobility modelisation
MIT License
16 stars 10 forks source link

Problème pour run le script R à la première utilisation (avec Mac) #118

Open matt-gau opened 2 days ago

matt-gau commented 2 days ago

Je n'arrive pas à faire tourner les travel_costs, problème lors de la première utilisation de R sur la ligne 108 de travel_costs.py :

script = RScript(resources.files('mobility.R').joinpath('prepare_dodgr_graph.R'))

L'erreur se produit dès le début de la lecture du fichier R _prepare_dodgrgraph.R, sur l'installation des packages "log4r" et "nngeo" (voir screenshot). Il semblerait que R ne soit en fait pas installé sur l'environnement spyder alors que set_params() a bien tourné avant (R --version retourne qu'il ne connait pas la commande R).

Capture d’écran 2024-07-02 à 08 46 03
FlxPo commented 2 days ago

Le message d'erreur indique qu'il te manque le package nngeo. Il devrait normalement s'installer à la première utilisation de set_params, mais comme on l'avait vu ensemble ça ne semble pas fonctionner sur Mac OS.

Est ce que tu peux essayer de lancer une installation manuelle ?

@Mind-the-Cap je crois que les étudiants de l'ENSG avaient aussi des problèmes sur mac, comment est ce que vous l'aviez réglé ?

matt-gau commented 2 days ago

En fait je n'arrive pas à installer nngeo même à la main, je te mets le script:

Capture d’écran 2024-07-02 à 10 36 47
FlxPo commented 2 days ago

OK je vois le problème, il manque les packages dont nngeo dépend. Peux tu essayer install.packages("nngeo", dependencies = TRUE) ?

Il faudra surement faire ça pour tous les packages dont Mobilty a besoin (la liste est dans le fichier set_params.py pour tout faire d'un coup).

matt-gau commented 2 days ago

J'ai tenté, mais meme si ca semble installer pas mal de dépendances ca ne suffit pas à toutes les avoir visiblement.

Chatgpt de conseille d'installer directement sur mon ordi les dependances manquantes. Par exemple brew intall igraph ou encore udunits, puis d'aller chercher depuis mon systeme d'exploitation les packages (units par exemple) et de les installer dans R.

Capture d’écran 2024-07-02 à 11 29 38

Je me lance la dedans, en esperant qu'il n'y en ait pas trop

matt-gau commented 2 days ago

Ca ne semble pas fonctionnernon plus. Pour avoir igraph par exemple j'ai besoin de Matrix, qui n'est pas disponible pour la version de R qu'on utilise (4.1.3 alors que 4.4 semble nécessaire).

FlxPo commented 2 days ago

Je pense qu'il peut y avoir des conflits effectivement si tu sors de R. Est ce que tu peux copier coller les logs d'erreur que tu obtiens quand tu fais install.packages(c("igraph", "nngeo), dependencies = TRUE) et les envoyer dans un fichier ?

matt-gau commented 2 days ago

script_erreurs.txt

FlxPo commented 1 day ago

Merci, j'arrive à reproduire le bug de mon côté. Effectivement il manque certaines dépendances. On pourrait essayer d'installer les bonnes versions des packages en les spécifiant à remotes::install_version, mais l'approche est trop manuelle et n'est pas garantie de bien fonctionner sur toutes les plateformes.

Nous étions bloqués à la version 4.1.3 de R parce que conda-forge ne distribuait pas de version au delà de celle-ci pour Windows. Cela vient de changer, les versions 4.3 et 4.4 sont disponibles. Je teste la montée de version et je mets à jour dès que ça fonctionne.

matt-gau commented 1 day ago

Ok, merci Félix !

FlxPo commented 1 day ago

La montée de version fonctionne en local. Je vois si les tests passent puis je pourrai déployer le bug fix sur la branche main. Suivi sur la PR https://github.com/mobility-team/mobility/pull/119.

@matt-gau il te faudra réinstaller l'environnement mobility. Pour cela, il faudra faire mamba remove -n mobility --all, puis relancer l'installation. La procédure est maintenant dans le README sur la page d'accueil du repo.

FlxPo commented 1 day ago

@matt-gau tu peux faire un git pull depuis la branche main pour récupérer le fix.

matt-gau commented 1 day ago

J'ai bien récupéré le code avec un git pull, et réinstallé l'environnement mobility. Mais mon environnement spyder ne parvient pas a importer moobility, je ne sais plus si on avait fait une manip en plus ? Comme changer l'interpreteur Python pour mettre le python "de mobility" ? En essayant ca j'ai un probleme de kernel :/

FlxPo commented 1 day ago

Oui il faut installer spyder-kernels dans ton environnement mobility avec pip install spyder-kernels. Ensuite dans spyder, il faut aller dans Préférences > Interpréteur Python et indiquer le chemin vers la version de python stockée dans le dossier d'environnement mamba (tu peux faire mamba info --envs pour voir où elle se trouve).