Bonjour,
Mon Problème
Je code dans l'environnement Spyder (du pack WINPYTHON.2791) et je rencontre un problème assez gênant avec l'utilisation de la bibliothèque os.
Lorsqu'une erreur est levée par la bibliothèque, la console interne s'ouvre et aucun message d'erreur ne s'affiche dans ma console d'execution.
Un exemple:
A la première execution on crée un fichier test.txt que l'on renomme en test2.txt, tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 # -*- coding: utf-8 -*- import os f = open("test.txt", "w+") f.write("Will it work ?") f.close() os.rename("test.txt", "test2.txt")
A la seconde execution on crée un nouveau fichier test.txt et on veut le renommer en test2.txt, ce qui pose problème puisque ce fichier existe déjà.
Lorsque le script est executé via IDLE j'obtiens bien une erreur dans la console:
WindowsError: [Error 183] Impossible de créer un fichier déjà existant
Lorsque j'execute ce même script via Spyder (via une console Python), l'erreur ne s'affiche pas et la console Python est bloquée. En parallèle la console interne s'ouvre avec le message suivant:
A savoir que ce message s'affiche plusieurs fois, pour des positions differentes (fin du message, gras souligné): 1406, 1447, 1425, 336, ..Console interne de Spyder
Il s'agit d'une console de débogage
utilisée par Spyder pour signaler des erreurs
internes ou pour inspecter les entrailles de
l'application avec les commandes ci-dessous :
spy.app, spy.window, dir(spy)
Ne l'utilisez pas pour exécuter votre propre code.
>>> Traceback (most recent call last):
File "C:\Users\H33376\Documents\Gratuiciels\WINPYTHON.2791\python-2.7.9\lib\site-packages\spyderlib\widgets\externalshell\baseshell.py", line 275, in write_output
self.shell.write(self.get_stdout(), flush=True)
File "C:\Users\H33376\Documents\Gratuiciels\WINPYTHON.2791\python-2.7.9\lib\site-packages\spyderlib\widgets\externalshell\baseshell.py", line 265, in get_stdout
return self.transcode(qba)
File "C:\Users\H33376\Documents\Gratuiciels\WINPYTHON.2791\python-2.7.9\lib\site-packages\spyderlib\widgets\externalshell\baseshell.py", line 258, in transcode
return to_text_string(qba.data(), 'utf8')
File "C:\Users\H33376\Documents\Gratuiciels\WINPYTHON.2791\python-2.7.9\lib\site-packages\spyderlib\py3compat.py", line 134, in to_text_string
return unicode(obj, encoding)
File "C:\Users\H33376\Documents\Gratuiciels\WINPYTHON.2791\python-2.7.9\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 1406: invalid continuation byte
Ca parle d'encodage, mais tout est sensé être en utf8.
Est ce que qu'un sait comment résoudre le problème ?
Merci d'avance pour vos réponse.
La bise à tous.
Partager