web-dev-qa-db-fra.com

Pourquoi dit-on que le module pygame n'a pas de membre init?

Voici le code que j'ai:

import pygame
pygame.init()

Je suis très confus, car si j'essaie d'exécuter le fichier, il ne semble pas y avoir de problème, mais pylint dit ce qui suit:

E1101: Le module 'pygame' n'a pas de membre 'init'

J'ai minutieusement cherché une solution à cette "erreur". Dans tous les cas pertinents que j'ai trouvés, la solution consistait à m'assurer que je n'avais pas créé un autre fichier ou dossier portant le nom "pygame", car dans ce cas, je n'importerais que mon propre fichier ou dossier . Cependant, Je n'ai pas créé de dossier ou de fichier portant un nom même proche de "pygame", je ne sais donc pas quel est le problème.

Comme je l'ai dit plus tôt, il semble que je puisse exécuter le fichier sans problème, mais je suis un novice dans ce domaine. De telles erreurs me déroutent dans mon processus d'apprentissage.

J'écris du code dans Visual Studio Code, j'utilise python 3.6, j'utilise pygame 1.9.3 et j'ai mis à jour mon pylint. Toute aide serait appréciée.

6
Ludde

Si vous avez du code VS, allez dans votre dossier .vscode> settings.json ou recherchez python.linting.mypyArgs Sous l'onglet des paramètres de l'utilisateur, collez-y entre des accolades

"python.linting.pylintArgs": [
"----extension-pkg-whitelist=1xml"
]

Je ne vois plus l'erreur pyinit.

10
Parkofadown

Résumer toutes les réponses . Ceci est une mesure de sécurité pour ne pas charger les extensions C autres que celles par défaut.

  1. Vous pouvez mettre en liste des extensions spécifiques.

Ouvrez les paramètres utilisateur et ajoutez les éléments suivants entre {}:

"python.linting.pylintArgs": [
    "--extension-pkg-whitelist=extensionname" // comma separated
]
  1. Vous pouvez autoriser le "chargement non sécurisé" de toutes les extensions.

Ouvrez les paramètres utilisateur et ajoutez les éléments suivants entre {}:

"python.linting.pylintArgs": [
    "--unsafe-load-any-extension=y"
]

Merci Richard et Nearoo.

3
vt.

Je trouve une réponse et ça marche vraiment pour moi ... Voir la réponse acceptée et changez-la en extension-pkg-whitelist=lxml

pylint 1.4 rapporte E1101 (aucun membre) sur toutes les extensions C

2
Billy

Cette réponse inclut la réponse à votre question. En bref, cela explique:

Pylint importe des modules pour identifier efficacement les méthodes et les attributs valides. Il a été décidé que l'importation d'extensions c qui ne font pas partie de python stdlib constitue un risque pour la sécurité et pourrait introduire un code malveillant.

et comme solution, il mentionne entre autres:

Désactivez la sécurité en utilisant le paramètre .pylintrcunsafe-load-any-extensions=yes

Voir ici pour plus d’informations sur pylint.rc. La méthode la plus rapide consiste simplement à créer le fichier .pylintrc dans votre répertoire de projet ou votre répertoire de base.

0
Nearoo

Vérifiez si vous avez créé un fichier python nommé pygame.py dans votre répertoire.

0
Sanketh B. K

J'ai eu le même problème lorsque j'ai commencé à utiliser Visual Studio Code avec Python. Cela n'a rien à voir avec le fait d'avoir un autre pygame.py ou de ne pas l'installer correctement. Cela tient au fait que Visual Studio Code prend votre code littéralement et, comme vous ne pouvez pas importer pygame.init (), il pense que ce n'est pas un module correct. Pour résoudre ce problème, ouvrez settings.json (allez dans vos paramètres, puis cliquez sur l'icône {}) et collez-y "python.linting.pylintArgs": [ "----extension-pkg-whitelist=1xml" ].

0
CompuGenuis Programs