以下是我的代码:
import pygame
pygame.init()
我非常困惑,因为如果我尝试运行该文件,那么似乎没有问题,但是pylint会说以下内容:
E1101:模块' pygame'没有' init'构件
我已经彻底搜索了这个"错误"的解决方案。在我发现的每个相关案例中,解决方案是确保我没有创建另一个名为" pygame"的文件或文件夹,因为在这种情况下,我只是导入我自己的文件或文件夹。 但是,我没有创建一个名称甚至接近" pygame"的文件夹或文件,所以我不知道问题是什么。
如前所述,我似乎能够毫无问题地运行该文件,但我是新手,并且在我的学习过程中遇到这样的错误会让我感到困惑。
我在Visual Studio Code中编写代码,我使用python 3.6,我使用pygame 1.9.3并更新了我的pylint。任何帮助将不胜感激。
答案 0 :(得分:18)
如果您有VS代码,请进入.vscode文件夹> settings.json或搜索python.linting.mypyArgs。在“用户设置”标签下,将其粘贴在花括号之间
"python.linting.pylintArgs": [
"----extension-pkg-whitelist=1xml"
]
我不再看到pyinit错误。
答案 1 :(得分:12)
我的一个模块遇到了同样的问题。这就是我解决该问题的方法。 (我正在Windows 10上使用Visual Studio)
int main()
{
int arraySize;
// Read array size
cout<<"Enter desired array size:";
cin>>arraySize;
int *arrayPtr=new int[arraySize];
// Print array
cout<<"arrayPtr = "<<arraySize<<endl;
populateIntegerArray( arrayPtr, arraySize);
displayIntegerArray(arrayPtr, arraySize);
findMaximumInteger( arrayPtr, arraySize);
cout<<"DELETING array at arrayPtr = "<<arrayPtr<<endl;
delete[] arrayPtr;
return 0;
}
(如有必要,请添加逗号)"python.linting.pylintArgs": ["--generate-members"]
文件( CTRL + S )对我来说,代码看起来像这样:
.json
希望有帮助。 感谢github上的@Alamnoor
答案 2 :(得分:5)
总结所有答案。 这是不加载非默认C扩展名的安全措施。
打开用户设置,然后在{}之间添加以下内容:
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=extensionname" // comma separated
]
打开用户设置,然后在{}之间添加以下内容:
"python.linting.pylintArgs": [
"--unsafe-load-any-extension=y"
]
谢谢Richard和Nearoo。
答案 3 :(得分:4)
我发现将其添加到settings.json()中可以解决此问题。
"python.linting.pylintArgs":[
"--extension-pkg-whitelist=pygame",
"--erros-only"
]
答案 4 :(得分:2)
我找到了答案,它确实对我有用。
查看已接受的答案并将其更改为extension-pkg-whitelist=lxml
答案 5 :(得分:1)
This的答案包括您问题的答案。简而言之,它说明:
Pylint导入模块可以有效地识别有效的方法和属性。决定导入不属于python stdlib的c扩展会带来安全风险,并且可能会引入恶意代码。
及其解决方案,其中包括:
使用
.pylintrc
设置unsafe-load-any-extensions=yes
禁用安全性。
有关pylint.rc
的更多信息,请参见here。最快的方法是在项目目录或主目录中创建文件.pylintrc
。
答案 6 :(得分:1)
我建议转到视图选项卡,单击命令面板并搜索首选项:打开settings.json。然后在代码的最后一行添加一个逗号,在其下面粘贴:
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=extensionname" // comma separated
]
然后保存您的文档( ctrl + s )。
答案 7 :(得分:0)
检查您是否在目录中创建了一个名为pygame.py
的python文件
答案 8 :(得分:0)
当我开始在Python中使用Visual Studio Code时,我遇到了同样的问题。它与拥有另一个pygame.py或未正确安装无关。它与Visual Studio Code照原样接受您的代码有关,并且由于您无法导入pygame.init(),因此认为它不是正确的模块。要解决此问题,请打开settings.json(进入设置,然后单击{}
图标)并将"python.linting.pylintArgs": [
"----extension-pkg-whitelist=1xml"
]
粘贴到其中。
答案 9 :(得分:0)
禁用Pylint 1.按Ctrl + Shift + P 2.然后输入Disable Pylint
答案 10 :(得分:0)
我就是这样写的!
from pygame import * #this will import everything inside the pygame module
import pygame
现在我在vscode中没有任何错误。
答案 11 :(得分:-2)
我找到了解决方案,修改了投票最多的答案:
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=pygame"
]
将“ lxml”替换为“ pygame”。
答案 12 :(得分:-2)
如果您使用的是vscode
,则可以进入设置:
python.linting.pylintEnabled = False
它将解决问题。如果您不使用vscode
,则可以转到命令提示符并使用命令
pylint
pip uninstall pylint.
答案 13 :(得分:-3)
在Vscode中执行此操作时,我遇到了同样的问题,但是当我从pc终端运行python文件时,它以某种方式解决了。不是Vscode中的终端