web-dev-qa-db-fra.com

VS Code affiche un message d'erreur lors de l'instruction print en python 2.7

J'utilise VS Code version 1.19.3 avec Python 2.7 sous Windows.

Récemment, pylint (analyseur de code) a affiché un message d'erreur "E1601:print statement used"

Mais je ne sais pas pourquoi! Est-ce que quelqu'un peut m'aider?

L'instruction d'impression est correcte à ma connaissance!

Est-ce un bug ou une fonctionnalité manquante?

Salutations niesel

enter image description here

13
Georg Gutsche

L'avertissement provient de pylint qui est un outil très utile pour un langage non typé avec une syntaxe lâche comme python. Puisque vous programmez en python 2.x étaient print est parfaitement valide, je vous suggère de mettre un fichier à la racine de votre dépôt nommé .pylintrc et l'utiliser pour configurer pylint.

Pour désactiver l'avertissement d'impression et laisser tout le reste par défaut, entrez ces deux lignes dans votre .pylintrc fichier:

[MESSAGES CONTROL]
disable=print-statement

Vous devrez également indiquer à Visual Studio Code d'utiliser votre fichier de configuration en ouvrant votre espace de travail o paramètres utilisateur et ajoutez ceci:

{
     "python.linting.enabled": true,
     "python.linting.pylintEnabled": true,
     "python.linting.pylintArgs": [
          "--rcfile=/path/to/.pylintrc"
     ]
}

Plus d'options

Pour avoir une bonne idée des options de configuration disponibles, ouvrez un terminal/invite et exécutez cette commande pour générer un exemple de fichier de configuration:

pylint --generate-rcfile > sample_pylintrc
14
jjabba

Le problème est que le passage d'une instruction d'impression à une fonction d'impression n'aide pas beaucoup. Il semble donc que ce soit un bug dans VS Code Python (2018.1 (01 fév 2018)), car après cette mise à jour, j'ai trouvé le même problème dans mon code VS dans mon ancien projets

bug screenshot

J'ai trouvé un bug référencé sur leur github

PS: vscode-python a changé les options de pylint depuis 2018.1. Afin de retourner l'ancien comportement, vous pouvez désactiver l'option python.linting.pylintUseMinimalCheckers pour l'espace de travail ou pour l'espace utilisateur.

ce n'est pas une erreur en soi, c'est juste PyLint qui se plaint de ces déclarations héritées. PyLint se plaindra également des espaces manquants avant les virgules, ce genre d'erreurs de style.

PyLint est là pour vous avertir d'éventuels problèmes. Votre code se cassera lors de l'exécution de python 3, il vous avertit donc avant que cela ne se produise.

Notez que print est une instruction dans python 2.x (qui explique le message), et est devenue une fonction dans python 3.x.

Corrigez-le en modifiant:

print("test")

Comme ce n'est pas un Tuple, il fonctionne très bien et fait exactement la même chose pour toutes les versions de python, et PyLint cessera de se plaindre.

vous pouvez également vous débarrasser complètement de PyLint: Windows 10 - Visual Studio Code - suppression de pylint (je ne sais pas si c'est une bonne idée)

0