Python:`From导入*`不是全部导入
问题描述
我知道import *不好,但有时当我懒得打字或记不住导入时,我会使用它进行快速原型制作
我正在尝试以下代码:
from OpenGL.GL import *
shaders.doSomething()
它会导致错误:`NameError:未定义全局名称‘shaders’‘
如果我更改导入:
from OpenGL.GL import *
from OpenGL.GL import shaders
shaders.doSomething()
错误消失。为什么*不包括shaders?
解决方案
shaders是子模块,不是函数。
语法from module import something不导入子模块(正如另一个答案所述,__all__中没有定义)。
要使用该模块,您必须专门导入它:
from OpenGL.GL import shaders
或者,如果您只想拥有shaders的几个功能:
from OpenGL.Gl.shaders import function1, function2, function3
如果您想拥有shaders的所有功能,请使用:
from OpenGL.Gl.shaders import *
希望这能有所帮助!
相关文章