Bonjour,

je suis étudiant en géographie et je m'intéresse à la programmation en python, je reste toutefois un grand débutant.
Mon professeur me demande de faire un html servant de carte interactive, en utilisant le module "folium" (un module adapté de leaflet permettant d'afficher des résultats de cartographie en utilisant le langage python). Toutefois, dès que j'essaye d'utiliser ce module, python lève une erreur d'Unicode.



Je suis sur windows 10, j’utilise python 2.7 avec lequel folium est censé fonctionner.
J’ai installé jinja2, branca, numpy, pandas, vincent, mock, flake8, pytest, sphinx et finalement folium. J’ai utilisé pip install pour certains et easy_install pour d’autres.


A chaque fois que j’essaye de lancer un code avec folium, je reçois toujours la même erreur « UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 19: ordinal not in range(128) ».
Par exemple, lorsque je test le code base_map donné en exemple dans le dossier de folium, tout se passe bien, le html fonctionne parfaitement, toutefois, lorsque je copie/colle ce même code sur un autre fichier python, il lève cette exception.




Ci après le code de base_map :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# -*- coding: utf-8 -*-
 
'''Test of Folium basic map'''
 
 
 
import folium
 
 
 
# Standard OSM.
 
map_osm = folium.Map(location=[45.5236, -122.6750])
 
map_osm.save(outfile='osm.html')
 
 
 
# Stamen Toner.
 
stamen = folium.Map(location=[45.5236, -122.6750], tiles='Stamen Toner',
 
                    zoom_start=13)
 
stamen.save(outfile='stamen_toner.html')


Et l’exception :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Traceback (most recent call last):
 
  File "C:\Users\Maxime Rouchès\Desktop\python\carte2.py", line 7, in <module>
 
    map_osm = folium.Map(location=[45.5236, -122.6750])
 
  File "C:\Users\Maxime Rouchès\Desktop\python\folium\map.py", line 173, in __init__
 
    detect_retina=detect_retina)
 
  File "C:\Users\Maxime Rouchès\Desktop\python\folium\map.py", line 235, in add_tile_layer
 
    detect_retina=detect_retina)
 
  File "C:\Users\Maxime Rouchès\Desktop\python\folium\map.py", line 354, in __init__
 
    filter_func=lambda x: x.startswith('tiles/')))
 
  File "C:\Python27\lib\site-packages\jinja2\environment.py", line 723, in list_templates
 
    x = self.loader.list_templates()
 
  File "C:\Python27\lib\site-packages\jinja2\loaders.py", line 265, in list_templates
 
    _walk(path)
 
  File "C:\Python27\lib\site-packages\jinja2\loaders.py", line 259, in _walk
 
    for filename in self.provider.resource_listdir(path):
 
  File "build\bdist.win-amd64\egg\pkg_resources\__init__.py", line 1486, in resource_listdir
 
    return self._listdir(self._fn(self.module_path, resource_name))
 
  File "build\bdist.win-amd64\egg\pkg_resources\__init__.py", line 1530, in _fn
 
    return os.path.join(base, *resource_name.split('/'))
 
  File "C:\Python27\lib\ntpath.py", line 85, in join
 
    result_path = result_path + p_path
 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 19: ordinal not in range(128)



Je n’ai peut être pas bien finalisé l’installation de folium, en effet sur les docs de folium il est demandé sur la fin de l’installation de run les tests : http://folium.readthedocs.io/en/late...l#requirements

Toutefois, alors que j’ai installé pytest, le CMD me dit toujours que « 'py.test' n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. »

De même, les docs demandent de lorsque je veux construire les docs, alors que j’ai installé sphynx, on me dit que « 'rm' n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. »



J'ai l'impression qu'il y a un problème avec l'encodage, toutefois tout le monde utilise utf-8 avec folium, ensuite je suis vraiment un grand débutant, donc je ne comprends pas bien les problèmes liés à l'Unicode.





Si vous avez des pistes à m'avancer, je vous en remercie énormément.



Cordialement

Maxime Rouchès