it-swarm.com.de

Warum heißt es, dass das Modul pygame kein init-Mitglied hat?

Folgendes ist der Code, den ich habe:

import pygame
pygame.init()

Ich bin sehr verwirrt, denn wenn ich versuche, die Datei auszuführen, scheint es kein Problem zu geben, aber pylint sagt folgendes:

E1101: Modul 'pygame' hat kein 'init'-Member

Ich habe gründlich nach einer Lösung für diesen "Fehler" gesucht. In jedem relevanten Fall, den ich gefunden habe, bestand die Lösung darin, sicherzustellen, dass ich keine andere Datei oder einen anderen Ordner mit dem Namen "pygame" erstellt habe, da ich in diesem Fall nur meine eigene Datei oder meinen eigenen Ordner importieren würde. Ich habe keinen Ordner oder eine Datei mit einem Namen erstellt, der sogar in der Nähe von "pygame" liegt, daher weiß ich nicht, was das Problem ist.

Wie bereits gesagt, scheint es mir, dass ich die Datei ohne Probleme ausführen kann, aber ich bin neu dabei und Fehler wie dieser verwirren mich in meinem Lernprozess.

Ich schreibe Code in Visual Studio Code, ich verwende Python 3.6, ich verwende Pygame 1.9.3 und habe mein Pylint aktualisiert. Jede Hilfe wäre dankbar.

6
Ludde

Wenn Sie über VS-Code verfügen, wechseln Sie in den Ordner .vscode> settings.json, oder suchen Sie nach python.linting.mypyArgs. Auf der Registerkarte Benutzereinstellungen können Sie geschweifte Klammern einfügen

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

Ich sehe den Pyinit-Fehler nicht mehr.

10
Parkofadown

Zusammenfassung aller Antworten ... Dies ist eine Sicherheitsmaßnahme, um nicht standardmäßige C-Erweiterungen zu laden.

  1. Sie können bestimmte Erweiterungen auf eine weiße Liste setzen.

Öffnen Sie die Benutzereinstellungen und fügen Sie Folgendes zwischen {} ein:

"python.linting.pylintArgs": [
    "--extension-pkg-whitelist=extensionname" // comma separated
]
  1. Sie können alle Erweiterungen "unsicher laden".

Öffnen Sie die Benutzereinstellungen und fügen Sie Folgendes zwischen {} ein:

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

Vielen Dank, Richard und Nearoo.

3
vt.

Ich finde eine Antwort, und es funktioniert wirklich für mich ... Sehen Sie die akzeptierte Antwort und ändern Sie sie in extension-pkg-whitelist=lxml

pylint 1.4 meldet E1101 (kein Mitglied) zu allen C-Erweiterungen

2
Billy

Diese Antwort beinhaltet die Antwort auf Ihre Frage. Kurz gesagt, es erklärt:

Pylint importiert Module, um gültige Methoden und Attribute effektiv zu identifizieren. Es wurde entschieden, dass der Import von c-Erweiterungen, die nicht Teil der python stdlib sind, ein Sicherheitsrisiko darstellt und bösartigen Code einführen kann.

und als Lösung erwähnt es unter anderem:

Deaktivieren Sie die Sicherheit mit der Einstellung .pylintrcunsafe-load-any-extensions=yes

Unter hier finden Sie weitere Informationen zu pylint.rc. Am schnellsten erstellen Sie einfach die Datei .pylintrc in Ihrem Projektverzeichnis oder in Ihrem Home-Verzeichnis.

0
Nearoo

Prüfen Sie, ob Sie eine Python-Datei mit dem Namen pygame.py in Ihrem Verzeichnis erstellt haben

0
Sanketh B. K

Ich hatte das gleiche Problem, als ich anfing, Visual Studio Code mit Python zu verwenden. Es hat nichts damit zu tun, ein anderes pygame.py zu haben oder es nicht richtig zu installieren. Das hat mit der Tatsache zu tun, dass Visual Studio Code Ihren Code wörtlich nimmt, und da Sie pygame.init () nicht importieren können, ist dies der Meinung, dass es kein korrektes Modul ist. Um dies zu beheben, öffnen Sie die Datei settings.json (gehen Sie in Ihre Einstellungen und klicken Sie auf das Symbol {}) und fügen Sie "python.linting.pylintArgs": [ "----extension-pkg-whitelist=1xml" ] ein.