Python 3.x Can';t获取属性位置pyglet

Python 3.x Can';t获取属性位置pyglet,python-3.x,shader,pyglet,pyopengl,opengl-3,Python 3.x,Shader,Pyglet,Pyopengl,Opengl 3,这个代码不允许我使用它 position_loc = glGetAttribLocation(shader, "position") color_loc = glGetAttribLocation(shader, "color") 它附近的完整代码 shader = OpenGL.GL.shaders.compileProgram(OpenGL.GL.shaders.compileShader(self.vertex_shader_source,

这个代码不允许我使用它

 position_loc = glGetAttribLocation(shader, "position")
 color_loc = glGetAttribLocation(shader, "color")
它附近的完整代码

 shader = OpenGL.GL.shaders.compileProgram(OpenGL.GL.shaders.compileShader(self.vertex_shader_source, GL_VERTEX_SHADER),
                                              OpenGL.GL.shaders.compileShader(self.fragment_shader_source, GL_FRAGMENT_SHADER))
                                              
    position_loc = glGetAttribLocation(shader, "position")
    color_loc = glGetAttribLocation(shader, "color")
                    
                                              
    glUseProgram(shader)
    
    vbo = GLuint(0)
    glGenBuffers(1, vbo)
    
    glBindBuffer(GL_ARRAY_BUFFER, vbo)
    glBufferData(GL_ARRAY_BUFFER, 72, (GLfloat * len(self.triangle))(* self.triangle), GL_STATIC_DRAW)
    
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 24, ctypes.c_void_p(0))
    glEnableVertexAttribArray(0)
    
    glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 24, ctypes.c_void_p(12))
    glEnableVertexAttribArray(1)
这是除了着色器之外的所有代码,这是我的另一个问题。如果我不知道位置的话效果很好,但是有人告诉我需要。如果您能帮助我理解它为什么不起作用,那就太棒了

name参数需要是()而不是字符串:

position\u loc=glGetAttriblLocation(着色器,“位置”)

color\u loc=glGetAttribLocation(着色器,'color')

position\u loc=glGetAttriblLocation(着色器,b'position')
color\u loc=glGetAttribLocation(着色器,b'color')

它工作得非常好