« Programmation Python/Problèmes connus » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 7 :
Encoder la chaine du pipe en <code><nowiki>ur''</nowiki></code>.
 
== Messages d'erreur ==

=== 'ascii' codec can't encode characters in position ===
Ajouter <code>.encode('utf-8')</code> après la variable entière (après concaténation).
 
=== Import errorImportError: Nobad modulemagic namednumber monModulein... ===
rm *.pyc
 
=== Import error: No module named monModule ===
Il suffit de modifier le PYTHONPATH pour qu'il trouve le module mentionné, par exemple derrière une condition s'assurant que la machine qui exécute le script contient le répertoire du module :
<source lang=python>
Ligne 20 ⟶ 25 :
</source>
 
=== IndexError: list index out of range ===
Ajouter un test sur la taille du tableau avant d'y accéder, ex :
if len(tableau) > 0: print tableau[0]
 
=== sre_constants.error: bad character range ===
Arrive quand on inverse les paramètres dans <code>re.compile(paramètre1).search(paramètre2)</code>.
 
=== sre_constants.error: multiple repeat ===
Dans un regex, il y a des symboles de répétition consécutifs tels que **, +* ou ++.
 
=== sre_constants.error: unmatched group ===
Survient quand <code>re.sub()</code> ne trouve pas un groupe de capture. On peut donc le rechercher pour lancer le remplacement si la condition est remplie :
 
Ligne 40 ⟶ 45 :
Sinon il y a peut-être une barre verticale non échappée à tort.
 
=== TypeError: maMethode() takes no arguments (1 given) ===
Une méthode de classe doit être déclarée avec l'argument "self" à minima.
 
=== TypeError: 'module' object is not callable ===
Il suffit d'appeler le module sous la forme : NomFichier.NomFonction.
 
=== TypeError: slice indices must be integers or None or have an __index__ method ===
Une chaine est divisée par une variable inappropriée (ex : x dans c[x:y]).
 
=== UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 12: ordinal not in range(128) ===
Convertir la variable avec <code>.encode(config.console_encoding, 'replace')</code>.
 
Sinon, ne pas utiliser <code>str(x)</code>, par exemple au profit de <code>x.__getattr__('name').encode('utf-8')</code>.
 
=== UnicodeWarning: Unicode unequal comparison failed to convert both arguments to Unicode - interpreting them as being unequal ===
L'[[Coder_avec_Unicode/Conversion#Python|encodage]] pose problème.
 
{{...}}
 
=== ValueError: too many values to unpack ===
Un "for" est mal utilisé, par exemple retirer "clé" dans : "for clé, valeur in tableau".