Python安裝配置OpenGL環(huán)境的全過(guò)程記錄
最近學(xué)習(xí)計(jì)算機(jī)圖形學(xué),需要使用OpenGL,踩了很多雷,最后終于成功了,總結(jié)了一下教程和一些踩雷心得
環(huán)境:win10_64位系統(tǒng)、PyCharm(本人使用的是python3.8版本)
錯(cuò)誤安裝如下(錯(cuò)誤演示我使用的是python3.6版本)
打開(kāi)PyCharm,如下圖打開(kāi)設(shè)置
在project untitled中打開(kāi)python interpreter,如下圖所示
有的教程是讓你在這里直接搜索OpenGL進(jìn)行安裝,然而這里只能安裝32位,所以會(huì)導(dǎo)致代碼是不報(bào)錯(cuò)了,可是運(yùn)行便會(huì)報(bào)錯(cuò)(glut錯(cuò)誤),如下所示
下面是正確安裝方法(python3.8演示)
我們不能在PyCharm上直接安裝OpenGL,需要在官網(wǎng)上進(jìn)行下載
鏈接:https://www.lfd.uci.edu/~gohlke/pythonlibs/
進(jìn)入后一直向下找,找到PyOpenGL,我的是python3.8版本,就選擇下載箭頭指的兩個(gè)文件(cp38:意思就是python3.8版本;amd64:意思就是64位操作系統(tǒng))
根據(jù)自己的版本進(jìn)行下載
我的是在直接下載到了C盤中,如下所示
這兩個(gè).whl文件需要使用cmd命令窗口進(jìn)行命令安裝,它會(huì)直接安裝到你的對(duì)應(yīng)版本的庫(kù)文件中
pip install PyOpenGL-3.1.5-cp38-cp38-win_amd64.whl
pip install PyOpenGL_accelerate-3.1.5-cp38-cp38-win_amd64.whl
安裝成功后,去PyCharm的設(shè)置去查看庫(kù),如下所示
這里有個(gè)點(diǎn)要注意一下,本人在這里踩了大雷,因?yàn)槲抑暗腜yCharm使用的是python3.6版本,所以導(dǎo)致我安裝完之后,無(wú)法使用,但當(dāng)我下載了3.6版本的時(shí)候,發(fā)現(xiàn)系統(tǒng)提示我無(wú)法安裝,應(yīng)該是因?yàn)槲矣?.8版本,導(dǎo)致我3.6無(wú)法正常去安裝,所以這里就需要切換到python3.8的對(duì)應(yīng)路徑,如何就可以正常使用了。
如下圖,找到自己的python3.8文件夾,然后找到里面的python.exe文件,然后將它的路徑添加的下圖紅框中的地方去,就可以成功導(dǎo)入你python3.8的庫(kù)了,然后在檢查自己庫(kù)中是否存在PyOpenGL和PyOpenGL-accelerate
代碼測(cè)試
from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * def Draw(): glClear(GL_COLOR_BUFFER_BIT) glRotatef(0.5, 0, 1, 0) glutWireTeapot(0.5) glFlush() glutInit() glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA) glutInitWindowSize(400, 400) glutCreateWindow("test") glutDisplayFunc(Draw) glutIdleFunc(Draw) glutMainLoop()
測(cè)試結(jié)果
旋轉(zhuǎn)的立體水壺
附: “OpenGL.error.NullFunctionError: Attempt to call an undefined function”解決方案
在windows_64下利用命令:pip install pyopengl 安裝python的openGL環(huán)境。結(jié)果運(yùn)行示例代碼出現(xiàn)以下錯(cuò)誤:
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInitDisplayMode, check for bool(glutInitDisplayMode) before calling
原因分析
主要是你的windows是64位的,但是使用命令pip install pyopengl 安裝后,執(zhí)行示例默認(rèn)使用的是pyopengl_32位的,所以出現(xiàn)了以上錯(cuò)誤!
解決方案
在Windows_64上安裝64位的pyopengl 即可,pyopengl_64位下載鏈接:PyOpenGL‑3.1.1‑win_amd64.whl
下載與自己Python版本合適的,執(zhí)行命令:pip install XXX.whl 即可正常使用pyopengl環(huán)境。
測(cè)試環(huán)境代碼
from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * def drawFunc(): glClear(GL_COLOR_BUFFER_BIT) #glRotatef(1, 0, 1, 0) glutWireTeapot(0.5) glFlush() glutInit() glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA) glutInitWindowSize(400, 400) #參數(shù)為b類型而不是string glutCreateWindow(b"First") glutDisplayFunc(drawFunc) #glutIdleFunc(drawFunc) glutMainLoop()
總結(jié)
到此這篇關(guān)于Python安裝配置OpenGL環(huán)境的文章就介紹到這了,更多相關(guān)Python安裝配置OpenGL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?assert斷言聲明,遇到錯(cuò)誤則立即返回問(wèn)題
這篇文章主要介紹了Python?assert斷言聲明,遇到錯(cuò)誤則立即返回問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Python多線程Threading、子線程與守護(hù)線程實(shí)例詳解
這篇文章主要介紹了Python多線程Threading、子線程與守護(hù)線程,結(jié)合實(shí)例形式詳細(xì)分析了Python多線程Threading、子線程與守護(hù)線程相關(guān)概念、原理、用法與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法
今天小編就為大家分享一篇python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02conda下載各種包時(shí)如何避免版本不匹配問(wèn)題
在使用python和conda時(shí),由于Python版本不匹配,可能會(huì)導(dǎo)致一些問(wèn)題的出現(xiàn),本文主要介紹了conda下載各種包時(shí)如何避免版本不匹配問(wèn)題,感興趣的可以了解一下2024-03-03PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問(wèn)題及解決方法
這篇文章主要介紹了PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問(wèn)題及解決方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-06-06Python實(shí)現(xiàn)貪吃蛇小游戲(單人模式)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)單人模式的貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09python中tf.boolean_mask()函數(shù)的使用方法詳解
這篇文章主要介紹了python中tf.boolean_mask()函數(shù)的使用方法詳解,?tf.boolean_mask()?函數(shù)的作用是通過(guò)布爾值對(duì)指定的列的元素進(jìn)行過(guò)濾,需要的朋友可以參考下2023-11-11