以下は私が持っているコードです:
import pygame
pygame.init()
ファイルを実行しようとしても問題はないようですが、pylintは次のように述べているため、非常に混乱しています。
E1101:モジュール「pygame」には「init」メンバーがありません
この「エラー」の解決策を徹底的に探しました。関連するすべてのケースで、解決策は、「pygame」という名前の別のファイルまたはフォルダーを作成していないことを確認することでした。その場合、自分のファイルまたはフォルダーをインポートするだけだからです。ただし、「pygame」に近い名前のフォルダーまたはファイルも作成していないため、問題が何なのかわかりません。
前に述べたように、問題なくファイルを実行できるように見えますが、私はこれに慣れていないため、このようなエラーがあると、学習プロセスで混乱します。
Visual Studio Codeでコードを記述し、python 3.6を使用しています。pygame1.9.3を使用しており、pylintを更新しています。どんな助けでも歓迎します。
VSコードがある場合は、.vscodeフォルダー> settings.jsonに移動するか、python.linting.mypyArgsを検索してください。ユーザー設定タブで中括弧の間に貼り付けます
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=lxml" // The extension is "lxml" not "1xml"
]
Pyinitエラーは表示されなくなりました。
すべての答えを要約します。これは、デフォルト以外のC拡張機能をロードしないためのセキュリティ対策です。
ユーザー設定を開き、{}の間に次を追加します。
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=extensionname" // comma separated
]
ユーザー設定を開き、{}の間に次を追加します。
"python.linting.pylintArgs": [
"--unsafe-load-any-extension=y"
]
リチャードとニアーに感謝します。
私は答えを見つけて、それは本当に私のために働いています。受け入れられた回答を参照して、extension-pkg-whitelist=lxml
に変更します
これ answerには質問への回答が含まれます。簡単に説明すると:
Pylintはモジュールをインポートして、有効なメソッドと属性を効果的に識別します。 python stdlibの一部ではないc拡張機能をインポートすると、セキュリティ上のリスクが生じ、悪意のあるコードが導入される可能性があると判断されました。
そして、解決策として、とりわけ言及しています:
.pylintrc
設定unsafe-load-any-extensions=yes
を使用して安全性を無効にします。
pylint.rc
の詳細については、 here を参照してください。最も簡単な方法は、プロジェクトディレクトリまたはホームディレクトリに.pylintrc
ファイルを作成することです。
ディレクトリに_pygame.py
_という名前のpythonファイルが作成されているかどうかを確認します。その場合、_import pygame
_行は実際のPygameモジュールの代わりに独自のファイルをインポートします。そのファイルにはinit()
関数がないため、この特定のエラーメッセージが表示されています。
PythonでVisual Studio Codeを使用し始めたとき、同じ問題がありました。別のpygame.pyを持っているか、適切にインストールしていないかは関係ありません。これは、Visual Studio Codeが文字通りコードを取得するという事実と関係があり、pygame.init()をインポートできないため、正しいモジュールではないと考えています。これを修正するには、settings.jsonを開きます(設定に入り、{}
アイコン)と貼り付け"python.linting.pylintArgs": [ "----extension-pkg-whitelist=1xml" ]
それに。