配置pyg

2024-05-20 00:00:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Python创建OpenGL上下文。我试图使用GLFW的python绑定,但是我在让它们工作时遇到困难。我在GLFW主页的https://github.com/rougier/pyglfw找到了绑定。在

运行测试程序时出现以下错误:

python HelloOpenGL.py
Traceback (most recent call last):
  File "HelloOpenGL.py", line 2, in <module>
    import glfw             #Windowing Toolkit - GLFW
  File "C:\<...>\glfw.py", line 60, in <module>
    raise OSError('GLFW library not found')
OSError: GLFW library not found

我怀疑我需要一个glfw动态链接库(我可能错了)。我已经尝试过复制我用的C++的GLFW,但是我得到了同样的错误。我尝试过用GNU编译器编译的glfw3.1的32位和64位dll。我使用的是Windows10 64位操作系统和Python3.4。在

我也遇到了这个问题:Configuring glfw for Python in Eclipse。答案尤其没有帮助,因为问题不是安装pyglfw而是设置其他依赖项。我最初确实使用pip安装pyglfw,但它不能正常工作,python也找不到模块;我手动安装了pyglfw,它正在工作。在

问题:有人能提供设置pyglfw的说明吗?我一直找不到任何相关的东西。我需要知道需要什么样的依赖才能使它工作。在

测试程序如下:

^{pr2}$

Tags: inpy错误linelibrarynot测试程序file
2条回答

我几秒钟前就知道了,结果是在使用32位python的64位系统上,需要将DLL放在C:\Windows\SysWOW64中,然后python才能找到它。在

我打开了pyglfw模块。这是一个在Windows系统上发生的问题,因为模块搜索GLFW DLL的方式不同。该模块使用ctypes.util.find_library()搜索库路径,它搜索path环境变量中的目录,而不是工作目录。在

我的解决方案是在pyglfw中硬编码DLL。这可以通过以下代码完成:

_glfw = ctypes.WinDLL('glfw3')

现在只要glfw3.dll放在同一个目录中,就可以加载它。(对于早期版本的GLFW,DLL是glfw.dll)在

此代码应替换原代码中的第45-53行:

^{pr2}$

此问题:find_library() in ctypes详细说明在windows上加载库的解决方案。在

这概述了另一种解决方案,即在运行时设置搜索路径:

^{bq}$

相关问题 更多 >