在OrangePi-PC下安装显卡驱动以及opengl:

http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=53

在这个链接中说要:Copy Libs (libGLES* libGLES* LibUmp LibMali) to /usr/lib

但是在查找动态链接库的时候,orangepi会在/usr/lib/arm-linux-gnueabihf下查找动态库,请参考ldconfig的手册,或者是查看/etc/ld.so.conf.d下的文件

因此,我们需要拷贝 (libGLES* libGLES* LibUmp LibMali) 到 /usr/lib/arm-linux-gnueabihf 下

安装完成后即可使用opengl es以及egl的c接口进行开发

但是如果安装PyOpenGL:

  http://pyopengl.sourceforge.net

  在ubuntu下直接使用pip安装:

pip install PyOpenGL --user
pip install PyOpenGL-accelerate --user

在import OpenGL.GL或者import OpenGL.GLES2时会报错:

/home/orangepi/.local/lib/python2./site-packages/OpenGL/platform/glx.pyc in GL(self)
)
except OSError as err:
---> raise ImportError("Unable to load OpenGL library", *err.args)
@baseplatform.lazy_property
def GLU(self): ImportError: ('Unable to load OpenGL library', '/usr/lib/arm-linux-gnueabihf/GL: cannot read file data: Is a directory', 'GL', None)

这是由于OrangePi的mali驱动只提供了OpenGL ES接口,而PyOpenGL要求必须有GL接口。

修正这个问题需要更改PyOpenGL下的platform/glx.py文件(如果使用pip安装,并使用--user参数,则安装路径为:~/.local/lib/python2.7/site-packages/OpenGL/platform/glx.py), 做如下更改:

@baseplatform.lazy_property
def GL(self):
try:
return ctypesloader.loadLibrary(
ctypes.cdll,
'GL',
mode=ctypes.RTLD_GLOBAL
)
except OSError as err:
# -- raise ImportError("Unable to load OpenGL library", *err.args)
# ++ return None
return None
# GLX doesn't seem to have its own loadable module?
@baseplatform.lazy_property
# -- def GLX(self): return self.GL
# ++ def GLX(self): return self.GLES2
def GLX(self): return self.GLES2
@baseplatform.lazy_property
def GetCurrentContext( self ):
# -- return self.GL.glXGetCurrentContext
# ++ return None
return None
@baseplatform.lazy_property
def glGetError( self ):
# -- return self.GL.glGetError
# ++ return self.GLES2.glGetError
return self.GLES2.glGetError

这是在import OpenGL.GLES2即可成功

在orangepi-PC下使用pyopengl的更多相关文章

  1. Issue 6: 装机系列1,PC下windows系统安装指南

    0.前言 接触电脑将近7年时间,多次说要写下这篇文章,一直未曾提笔,始终怕给人以误导.到如今,来来回回装系统的次数得超过百次了.本着不误导人的想法,本文试着总结一下装系统的基本方法和思路,但不会过多涉 ...

  2. PC下ubuntu查找PC串口并加入用户组

    1. 查看ttyS0隶属的组:ls -l /dev/ttyS0  //发现隶属于dialout组 输出: crw-rw---- 1 root dialout 4, 64  9月  9 08:23 /d ...

  3. orange pi pc 体验(二)远程登录服务器

    1.本人的板子是orangepi  pc,安装的debian系统 2.启动完成后,默认可以用xshell登录板子的,使用nano更改/etc/apt/source.list root@OrangePI ...

  4. linux(TINY6410)下移植boa服务器

    今天在tiny6410上移植了boa服务器,中间遇到了一些小问题.当时也及时解决了. 第一步:boa的编译 在www.boa.org下载Boa的压缩包  我这里用的是 boa-0.94.13.tar. ...

  5. Win7下安装配置gVim

    本文根据vim官网的<Simple Steps to Help You Install gVim on Windows 7>[1]一文整理而成. 1. 下载gVim 在http://www ...

  6. PC上安装MAC X Lion

    PC上安装MACXLion 网上关于如何在PC下安装MAC的文章已近不少了,但对于一些初学者在实践当中会遇到各种问题,以下视频资料为大家展示两种虚拟机安装MacOS. 1.VmwareWorkstat ...

  7. linux下编译运行驱动

    linux下编译运行驱动 嵌入式linux下设备驱动的运行和linux x86 pc下运行设备驱动是类似的,由于手头没有嵌入式linux设备,先在vmware上的linux上学习驱动开发. 按照如下方 ...

  8. Linux下链接数据库图形化工具

    (一).Linux环境下mysql的安装.SQL操作 Linux下安装MySQL (rmp --help) 基本步骤:上传软件->检查当前Linux环境是否已经安装,如发现系统自带的,先卸载-& ...

  9. IE下CSS3伪类的支持

    当css3.0出现以后,着实让我兴奋了好久,因为出现了很多选择器,我们在也不用靠js做复杂判断了.比如:nth-child,很容易就可以判断奇偶对象 “:nth-child(2n)和:nth-chil ...

随机推荐

  1. 50道经典的JAVA编程题(36-40)

    50道经典的JAVA编程题(36-40),今天晚上心情压抑,不爽,继续做题,管它明天考试,我继续我的java,一个周末都在看微机原理看得的很头疼啊~明天该挂科就挂吧,不在乎了~~~ [程序36] Ar ...

  2. Web技术导论复习大纲

    1. 什么是URL,其一般形式是什么? 资源类型://网址[:端口号][/[文件路径/文件名]][?参数名=参数值&参数名=参数值...] 2. 什么是B/S模式,与C/S模式相比有哪些优越性 ...

  3. Java同步问题面试参考指南

    同步 在多线程程序中,同步修饰符用来控制对临界区代码的访问.其中一种方式是用synchronized关键字来保证代码的线程安全性.在Java中,synchronized修饰的代码块或方法不会被多个线程 ...

  4. 松下蓄电池与UPS使用和维护

      使用条件及环境1.充电电流(浮充使用):0.15CA以下2.放电电流范围:0.05CA-3CA3.环境温度:0℃-40℃ (适宜的温度是25℃) 4.充电电压:(12V电池推荐值)   周围温度 ...

  5. stm32 堆和栈(stm32 Heap & Stack)【worldsing笔记】

    关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的.   那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘:     刚接手STM32时,你只编写一个 int main() ...

  6. CSS3之边框图片border-image

    CSS3中有关border的属性,还有很多,今天我将为大家介绍一个很好玩的属性——Border-image.有了CSS3之边框图片Border-image,我们可以轻松搞定圆角,轻松搞定很多之前难搞的 ...

  7. Activity详解

    Activity是android应用的重要组成单元之一(另外3个是Service,BroadcastReceiver和ContentProvider).实际应用包含了多个Activity,不同的Act ...

  8. Unity3D4.x之AssetBundle学习笔记

    关于AssetBundle AssetBundle可用来将多个资源打包为一个文件,实现动态下载和更新.需要注意的是Unity3D5.x以后对打包方式进行了升级,不用再在依赖关系上伤透脑筋,但是和4.x ...

  9. 【STL学习】map&set

    技术不只是我的工作,也是我的生活,以后的博客中会穿插一些个人的喜悦.愤怒或者感悟,希望大家能够接受. 我所有的一切,比我技术更好的怕是我的脸皮了,昨天收到京东面试没有通过的消息,喊了几句“我好悲伤啊” ...

  10. C#基础知识回顾-- 反射(3)

    C#基础知识回顾-- 反射(3)   获取Type对象的构造函数: 前一篇因为篇幅问题因为篇幅太短被移除首页,反射这一块还有一篇“怎样在程序集中使用反射”, 其他没有什么可以写的了,前两篇主要是铺垫, ...