Aller au contenu

Erreurs Python

Erreurs génériques

Erreur Description Quoi corriger
SyntaxError: invalid syntax Erreur de syntaxe dans le code (parenthèse manquante, deux points oubliés, etc.) Vérifier les parenthèses, crochets, guillemets appariés. Ajouter : après if, for, def, class
IndentationError: expected an indented block Bloc de code non indenté après une instruction qui l'exige Indenter le code après if, for, while, def, class avec 4 espaces ou une tabulation
NameError: name 'x' is not defined Variable ou fonction utilisée sans avoir été définie Définir la variable avant usage, vérifier l'orthographe, importer le module nécessaire
TypeError: unsupported operand type(s) Opération entre types incompatibles (ex: "texte" + 5) Convertir au bon type avec int(), str(), float()
AttributeError: 'type' object has no attribute 'x' Tentative d'accès à un attribut ou méthode inexistant Vérifier la documentation du type d'objet, corriger le nom de l'attribut
IndexError: list index out of range Tentative d'accès à un index qui n'existe pas dans la liste Vérifier la longueur de la liste, les index commencent à 0 et finissent à len(liste)-1
KeyError: 'clé' Tentative d'accès à une clé inexistante dans un dictionnaire Vérifier que la clé existe avec if clé in dict ou utiliser dict.get('clé')
ValueError: invalid literal for int() Conversion impossible (ex: int("abc")) S'assurer que la chaîne contient bien un nombre avant conversion
ImportError / ModuleNotFoundError Module non trouvé lors de l'import Installer le module avec pip (pip install nom_module)
ZeroDivisionError: division by zero Division par zéro Ajouter une condition pour éviter la division par zéro
FileNotFoundError: No such file or directory Fichier spécifié n'existe pas Vérifier le chemin du fichier, utiliser un chemin absolu ou vérifier le répertoire courant
TypeError: 'x' object is not callable Tentative d'appeler quelque chose qui n'est pas une fonction Vérifier qu'on n'écrase pas une fonction avec une variable, retirer les () si ce n'est pas un appel
IndentationError: unindent does not match any outer indentation level Indentation incohérente (mélange espaces/tabs) Utiliser uniquement des espaces (4 par niveau) ou uniquement des tabs, pas les deux
SyntaxError: EOL while scanning string literal Guillemet de fermeture manquant dans une chaîne Ajouter le guillemet manquant, vérifier les sauts de ligne dans les chaînes
TypeError: 'x' object is not iterable Tentative de boucler sur un objet non-itérable S'assurer que l'objet est une liste, tuple, string, etc. Utiliser range() pour les nombres
UnboundLocalError: local variable 'x' referenced before assignment Variable locale utilisée avant d'être définie dans une fonction Définir la variable avant usage ou utiliser global/nonlocal si nécessaire
RecursionError: maximum recursion depth exceeded Trop d'appels récursifs (boucle infinie) Ajouter une condition de base pour arrêter la récursion, augmenter la limite si nécessaire
TypeError: missing required positional argument Argument obligatoire manquant lors de l'appel d'une fonction Fournir tous les arguments requis ou définir des valeurs par défaut
MemoryError Mémoire insuffisante pour l'opération Réduire la taille des données, utiliser des générateurs, optimiser le code
StopIteration Itérateur épuisé (souvent lors d'appels next() manuels) Utiliser une boucle for ou vérifier qu'il reste des éléments avant next()
AssertionError Assertion échouée (utilisée pour les tests) Corriger le code pour que la condition soit vraie ou retirer l'assertion
OSError / IOError Erreur lors d'opérations système ou fichiers Vérifier les permissions, l'espace disque, que le fichier n'est pas déjà ouvert
TypeError: can only concatenate str (not "int") to str Tentative de concaténer des types incompatibles Convertir en string avec str() avant concaténation
ValueError: too many values to unpack Nombre de variables ne correspond pas au nombre de valeurs à décompresser Ajuster le nombre de variables ou utiliser * pour capturer le reste
SyntaxError: keyword can't be an expression Utilisation incorrecte d'un mot-clé comme argument Vérifier la syntaxe de l'appel de fonction, utiliser des noms valides
RuntimeError: dictionary changed size during iteration Modification d'un dictionnaire pendant qu'on itère dessus Itérer sur une copie : for k in list(dict.keys())
OverflowError: math range error Résultat numérique trop grand pour être représenté Utiliser des types de données plus grands ou vérifier les calculs
UnicodeDecodeError / UnicodeEncodeError Problème d'encodage/décodage de caractères Spécifier l'encodage correct (utf-8, latin-1, etc.) lors de la lecture/écriture
TypeError: 'NoneType' object is not subscriptable Tentative d'indexer None (souvent fonction qui ne retourne rien) Vérifier que la fonction retourne bien quelque chose, ajouter un return
AttributeError: 'NoneType' object has no attribute 'x' Appel de méthode sur None Vérifier que l'objet n'est pas None avant d'accéder à ses attributs
SyntaxError: positional argument follows keyword argument Argument positionnel après un argument nommé Placer tous les arguments positionnels avant les arguments nommés
TabError: inconsistent use of tabs and spaces Mélange de tabulations et espaces pour l'indentation Convertir tout en espaces (recommandé) ou tout en tabs
PermissionError: Permission denied Permissions insuffisantes pour accéder au fichier/dossier Exécuter avec les bonnes permissions ou modifier les permissions du fichier
ValueError: substring not found Chaîne recherchée non trouvée (méthode .index()) Utiliser .find() qui retourne -1 au lieu de lever une exception, ou vérifier avant
TypeError: 'float' object cannot be interpreted as an integer Float utilisé là où un entier est requis (ex: range()) Convertir en int avec int() ou utiliser des entiers dès le départ
KeyboardInterrupt Programme interrompu par Ctrl+C Normal si intentionnel, sinon gérer avec try/except pour nettoyer avant de quitter

Erreurs Pandas

Erreur Description Quoi corriger
KeyError: 'colonne' Colonne spécifiée n'existe pas dans le DataFrame Vérifier le nom exact avec df.columns, respecter majuscules/minuscules
ValueError: Length of values does not match length of index Nombre d'éléments ne correspond pas à la longueur de l'index S'assurer que la liste/array a la même longueur que le DataFrame
AttributeError: 'DataFrame' object has no attribute 'x' Méthode ou attribut inexistant pour un DataFrame Vérifier la documentation Pandas, souvent confusion entre Series et DataFrame
TypeError: cannot concatenate 'str' and 'float' Opération entre types incompatibles dans une colonne Convertir avec astype(str) ou astype(float), gérer les valeurs NaN
ParserError: Error tokenizing data Problème lors de la lecture d'un fichier CSV Vérifier le séparateur, l'encodage, ou utiliser on_bad_lines='skip'
ValueError: Cannot mask with non-boolean array Utilisation d'un masque non-booléen pour filtrer S'assurer que la condition de filtrage retourne des valeurs True/False
SettingWithCopyWarning Modification d'une copie plutôt que l'original Utiliser .loc[] ou .copy() explicitement pour clarifier l'intention
ValueError: cannot reindex from a duplicate axis Index contient des doublons lors d'un reindex Supprimer les doublons avec drop_duplicates() ou utiliser keep='first'/'last'
TypeError: 'Series' object is not callable Tentative d'appeler une Series comme une fonction (souvent après avoir écrasé une méthode) Renommer la variable qui écrase la méthode, utiliser la bonne syntaxe
ValueError: The truth value of a Series is ambiguous Utilisation de and/or au lieu de &/| dans les conditions Utiliser & et | pour les opérations booléennes, mettre les conditions entre parenthèses
TypeError: unhashable type: 'list' Tentative d'utiliser une liste comme clé de dictionnaire ou index Convertir en tuple ou utiliser un type hashable
ValueError: could not convert string to float Conversion impossible d'une chaîne en nombre Nettoyer les données (espaces, caractères spéciaux), utiliser pd.to_numeric() avec errors='coerce'
IndexError: single positional indexer is out-of-bounds Index hors limites lors de l'utilisation de .iloc Vérifier la longueur du DataFrame, utiliser des index valides
AttributeError: 'Series' object has no attribute 'columns' Tentative d'accéder à .columns sur une Series Les Series ont .name et .index, pas .columns. Convertir en DataFrame si nécessaire
ValueError: Usecols do not match columns Colonnes spécifiées dans usecols n'existent pas dans le CSV Vérifier les noms de colonnes dans le fichier, corriger usecols
MemoryError: Unable to allocate array DataFrame trop grand pour la mémoire disponible Lire par morceaux avec chunksize, utiliser dtypes optimisés, filtrer les colonnes
KeyError: 0 Tentative d'accès par label au lieu de position Utiliser .iloc[0] pour l'accès par position, .loc pour l'accès par label
ValueError: Cannot convert non-finite values (NA or inf) to integer Présence de NaN lors de conversion en entier Remplir ou supprimer les NaN avant conversion, utiliser Int64 (nullable integer)
TypeError: ufunc 'add' did not contain a loop Types de données incompatibles pour l'opération Vérifier et convertir les types de colonnes avec .astype()
ValueError: Excel does not support datetimes with timezones Datetime avec timezone lors de l'export Excel Retirer le timezone avec .dt.tz_localize(None) ou convertir en UTC

Erreurs Matplotlib

Erreur Description Quoi corriger
ValueError: x and y must have same first dimension Les arrays x et y n'ont pas la même longueur Vérifier que len(x) == len(y) avant le tracé
AttributeError: 'Figure' object has no attribute 'plot' Confusion entre Figure et Axes Utiliser ax.plot() au lieu de fig.plot(), ou plt.plot()
TypeError: 'AxesSubplot' object is not subscriptable Tentative d'indexation incorrecte sur un objet Axes Si un seul subplot, pas besoin d'index. Sinon, utiliser axes[i] correctement
ValueError: shape mismatch: objects cannot be broadcast Dimensions incompatibles pour imshow ou pcolormesh Vérifier les dimensions des données 2D avec .shape
UserWarning: Matplotlib is currently using agg Backend non-interactif utilisé Changer le backend avec matplotlib.use('TkAgg') ou utiliser plt.show()
RuntimeError: main thread is not in main loop Problème de threading avec l'interface graphique Appeler plt.show() dans le thread principal uniquement
ValueError: color kwarg must be a color or sequence of colors Couleur invalide ou nombre incorrect de couleurs Utiliser des noms de couleurs valides, codes hex, ou RGB. Vérifier le nombre de couleurs
TypeError: Image data of dtype object cannot be converted to float Données d'image de type object au lieu de numérique Convertir en array numpy avec le bon dtype (float ou uint8)
ValueError: posx and posy should be finite values Coordonnées infinies ou NaN dans les données Nettoyer les données, supprimer NaN et valeurs infinies
AttributeError: Unknown property 'xxx' Propriété invalide passée à une fonction matplotlib Vérifier la documentation pour les propriétés valides (linewidth, color, etc.)
ValueError: num must be 1 <= num <= 20, not 0 Numéro de sous-graphique invalide Les numéros de subplot commencent à 1, pas 0
TypeError: ufunc 'isfinite' not supported for the input types Type de données non supporté pour la vérification de finitude Convertir les données en types numériques (float, int)
RuntimeError: No mappable was found to use for colorbar Tentative de créer une colorbar sans objet mappable S'assurer qu'un objet avec couleurs (scatter, imshow) existe avant plt.colorbar()
ValueError: Unable to determine Axes to steal space for Colorbar Axes non spécifié pour la colorbar Passer l'argument ax= à plt.colorbar()

Erreurs SciPy

Erreur Description Quoi corriger
ValueError: object too deep for desired array Structure de données irrégulière (listes de longueurs différentes) S'assurer que toutes les sous-listes ont la même longueur
LinAlgError: Singular matrix Matrice singulière (non inversible) dans une opération d'algèbre linéaire Vérifier que la matrice n'est pas singulière, ajuster les données ou la méthode
ValueError: expected 1D or 2D array, got nD array instead Dimensions incorrectes pour la fonction appelée Reshape l'array avec .reshape() ou .flatten() selon le besoin
ValueError: array must not contain infs or NaNs Présence de valeurs infinies ou NaN dans les données Nettoyer les données avec np.isnan(), np.isinf(), remplacer ou supprimer
OptimizeWarning: Covariance of the parameters could not be estimated Problème de convergence dans l'optimisation Fournir de meilleures valeurs initiales, vérifier la qualité des données
IntegrationWarning: The maximum number of subdivisions Intégration numérique n'a pas convergé Augmenter le nombre de subdivisions ou ajuster les limites d'intégration
RuntimeWarning: divide by zero encountered Division par zéro dans un calcul vectorisé Filtrer les zéros avant le calcul ou utiliser np.seterr() pour gérer l'erreur
ValueError: The number of observations cannot be determined Données insuffisantes pour l'analyse statistique Fournir plus de données ou vérifier le format d'entrée
ValueError: matrices are not aligned Dimensions incompatibles pour multiplication matricielle Vérifier que les dimensions permettent la multiplication (m×n et n×p)
LinAlgError: SVD did not converge Décomposition SVD n'a pas convergé Vérifier les données pour valeurs extrêmes, essayer une autre méthode
ValueError: Input contains NaN, infinity or a value too large Valeurs invalides détectées dans les données Nettoyer les données avant le traitement
OptimizeWarning: Desired error not necessarily achieved due to precision loss Précision insuffisante dans l'optimisation Ajuster les tolérances, utiliser des données mieux conditionnées
ValueError: Residuals are not finite in the initial point Point de départ invalide pour l'optimisation Choisir de meilleures valeurs initiales

Erreurs NumPy

Erreur Description Quoi corriger
ValueError: setting an array element with a sequence Tentative d'assigner une séquence là où un scalaire est attendu Vérifier la structure des données, utiliser dtype=object si nécessaire
ValueError: operands could not be broadcast together Dimensions incompatibles pour une opération entre arrays Vérifier les shapes avec .shape, utiliser reshape ou broadcasting correctement
AxisError: axis X is out of bounds for array of dimension Y Axe spécifié n'existe pas pour cet array Vérifier le nombre de dimensions avec .ndim, utiliser un axe valide
ValueError: cannot reshape array of size X into shape Y Reshape impossible car le nombre total d'éléments ne correspond pas S'assurer que le produit des dimensions est égal au nombre d'éléments
TypeError: ufunc 'xxx' not supported for the input types Fonction universelle non supportée pour ces types Convertir les arrays au bon type (int, float, etc.)
ValueError: all the input arrays must have same number of dimensions Arrays avec différents nombres de dimensions Ajouter des dimensions avec np.newaxis ou reshape
ValueError: zero-size array to reduction operation which has no identity Opération de réduction sur array vide sans valeur par défaut Vérifier que l'array n'est pas vide ou fournir une valeur initiale
MemoryError: Unable to allocate X GiB Array trop grand pour la mémoire Réduire la taille, utiliser dtype plus petit, ou traiter par morceaux
IndexError: too many indices for array Trop d'index pour les dimensions de l'array Vérifier le nombre de dimensions avec .ndim, utiliser le bon nombre d'index
ValueError: negative dimensions are not allowed Dimension négative dans la création d'array Utiliser des dimensions positives