Python 如何解决错误:AttributeError:module';pyglfw';没有属性';pyglfwInit';
我想用python制作一个openGL项目。下面的代码正在创建显示图形的窗口Python 如何解决错误:AttributeError:module';pyglfw';没有属性';pyglfwInit';,python,ubuntu,opengl,glfw,Python,Ubuntu,Opengl,Glfw,我想用python制作一个openGL项目。下面的代码正在创建显示图形的窗口 import os import glfw from OpenGL.GL import * class renderwindow(): '''GLFW Renderting window class''' def __init__(self): #save current working directory cwd = os.getcwd()
import os
import glfw
from OpenGL.GL import *
class renderwindow():
'''GLFW Renderting window class'''
def __init__(self):
#save current working directory
cwd = os.getcwd()
#initialize glfw
glfw.glfwInit()
#restore cws
os.chdir(cwd)
#version hints
glfw.glfwWindowHint()
glfw.glfwWindowHint(glfw.GLFW_CONTEXT_VERSION_MAJOR, 3)
glfw.glfwWindowHint(glfw.GLFW_CONTEXT_VERSION_MINOR, 3)
glfw.glfwWindowHint(glfw.GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE)
glfw.glfwWindowHint(glfw.GLFW_OPENGL_PROFILE,
glfw.GLFW_OPENGL_CORE_PROFILE)
# make a window
self.width, self.height = 640, 480
self.aspect = self.width / float(self.height)
self.win = glfw.glfwCreateWindow(self.width, self.height,
b'simpleglfw')
# make the context current
glfw.glfwMakeContextCurrent(self.win)
def main(self):
glViewport(0, 0, self.width, self.height)
glEnable(GL_DEPTH_TEST)
glClearColor(0.5, 0.5, 0.5, 1.0)
当我运行代码时,它会报告如下错误:
Traceback (most recent call last):
File "/snap/pycharm-community/192/plugins/python-ce/helpers/pydev/pydevd.py", line 1438, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "/snap/pycharm-community/192/plugins/python-ce/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/home/surface/Final-Year-Project/FYP/Main.py", line 6, in <module>
class main():
File "/home/surface/Final-Year-Project/FYP/Main.py", line 29, in main
rw = renderwindow()
File "/home/surface/Final-Year-Project/FYP/Open_GL_project1/RenderWIndow.py", line 16, in __init__
glfw.glfwInit()
AttributeError: module 'glfw' has no attribute 'glfwInit'
Process finished with exit code 1
回溯(最近一次呼叫最后一次):
文件“/snap/pycharm community/192/plugins/python-ce/helpers/pydev/pydevd.py”,第1438行,在
pydev_imports.execfile(文件、全局、局部)#执行脚本
文件“/snap/pycharm community/192/plugins/python-ce/helpers/pydev/_-pydev\u-imps/_-pydev\u-execfile.py”,execfile中第18行
exec(编译(内容+“\n”,文件,'exec'),全局,loc)
文件“/home/surface/Final Year Project/FYP/Main.py”,第6行,在
类main():
文件“/home/surface/Final Year Project/FYP/Main.py”,第29行,主视图
rw=renderwindow()
文件“/home/surface/Final Year Project/FYP/Open_GL_project1/RenderWIndow.py”,第16行,初始__
glfw.glfwInit()
AttributeError:模块“glfw”没有属性“glfwInit”
进程已完成,退出代码为1
我在互联网上搜索解决方案,有人说问题是由旧版本的GLFW造成的。PYFW与GLFW不匹配。我不知道如何解决它方法的名称不是
glfwInit
,而是init
。这也适用于其他方法。(window\u hint
,create\u window
,make\u context\u current
):
导入操作系统
进口glfw
从OpenGL.GL导入*
类renderwindow():
''GLFW渲染窗口类''
定义初始化(自):
#保存当前工作目录
cwd=os.getcwd()
#初始化glfw
glfw.init()
#恢复cws
os.chdir(cwd)
#版本提示
glfw.window\u提示(glfw.CONTEXT\u版本\u主要,3)
glfw.window\u提示(glfw.CONTEXT\u版本\u小调,3)
glfw.window\u提示(glfw.OPENGL\u FORWARD\u COMPAT,GL\u TRUE)
glfw.window\u提示(glfw.OPENGL\u配置文件,
glfw.OPENGL_内核_配置文件)
#开窗
自宽、自高=640480
self.aspect=self.width/float(self.height)
self.win=glfw.create_窗口(self.width、self.height、,
“simpleglfw”,无,无)
#使上下文成为当前上下文
glfw.make_context_current(self.win)
def主(自):
glViewport(0,0,self.width,self.height)
glEnable(GL_深度_测试)
glClearColor(0.5,0.5,0.5,1.0)
或者
将glfw.glfw导入为glfw
:
导入操作系统
#进口glfw
导入glfw.glfw作为glfw
从OpenGL.GL导入*
类renderwindow():
''GLFW渲染窗口类''
定义初始化(自):
#保存当前工作目录
cwd=os.getcwd()
#初始化glfw
glfw.glfwInit()
#恢复cws
os.chdir(cwd)
#版本提示
glfw.glfwWindowHint(glfw.glfw_上下文_版本_主要版本,3)
glfw.glfwWindowHint(glfw.glfw_上下文_版本_小调,3)
glfw.glfwWindowHint(glfw.glfw\u OPENGL\u FORWARD\u COMPAT,GL\u TRUE)
glfw.glfwWindowHint(glfw.glfw_OPENGL_配置文件,
glfw.glfw_OPENGL_CORE_PROFILE)
#开窗
自宽、自高=640480
self.aspect=self.width/float(self.height)
self.win=glfw.glfwCreateWindow(self.width、self.height、,
“simpleglfw”,无,无)
#使上下文成为当前上下文
glfw.glfwMakeContextCurrent(self.win)
def主(自):
glViewport(0,0,self.width,self.height)
glEnable(GL_深度_测试)
glClearColor(0.5,0.5,0.5,1.0)
wnd=渲染窗口()
谢谢,您能告诉我在哪里可以找到关于python的OpenGL的API文档吗?我可以在GLFW、ORG/DOCS/ LangTuo中找到关于C++的文档,PyopGunl API可以在这里找到,分别是RabBID76,谢谢!