【问题标题】:Setting up PyOpenGL with freeglut for Python 3.5.2使用 freeglut 为 Python 3.5.2 设置 PyOpenGL
【发布时间】:2016-10-06 17:28:45
【问题描述】:

我正在尝试将我的机器设置为使用带有 freeglut 的 PyOpenGL。我有 Python 版本 3.5.2 和 Windows 8 的 64 位副本。

我已经使用 pip 下载了 PyOpenGL,然后下载了 freeglut 并将include\lib\ 文件夹放在C:\Program Files\Common Files\MSVC\freeglut。我还在链接到 C:\Work\freeglut.dll

的环境变量中放置了指向 64 位 freeglut.dll 文件的链接

由于我不知道任何 OpenGL,但我只是尝试运行此页面中的代码以查看我的设置是否正常运行 http://www.de-brauwer.be/wiki/wikka.php?wakka=PyOpenGLSierpinski。运行时我收到错误消息

Traceback (most recent call last):
  File "sier_tri.py", line 35, in <module>
    glutInit()
  File "C:\Users\Dylan\AppData\Local\Programs\Python\Python35-32\lib\site-packag
es\OpenGL\GLUT\special.py", line 333, in glutInit
    _base_glutInit( ctypes.byref(count), holder )
  File "C:\Users\Dylan\AppData\Local\Programs\Python\Python35-32\lib\site-packag
es\OpenGL\platform\baseplatform.py", line 407, in __call__
    self.__name__, self.__name__,
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit,
check for bool(glutInit) before calling

有谁知道是什么原因造成的/如何解决?

【问题讨论】:

    标签: python freeglut pyopengl


    【解决方案1】:

    glut32.dll 放在py 文件旁边。

    查看link

    【讨论】:

    • 我仍然遇到同样的错误,即使 dll 与程序位于同一目录中
    • 你有64位python和64位dll吗?
    • 这对我不起作用。我使用的是 64 位 Python,但我猜 freeglutd.dll(这是我得到的文件的名称)是 32 位的,因为 CMAKE 为变量 CMAKE_INSTALL_PREFIX 生成了值 C:/Program Files (x86)/freeglut。尽管它是 32 位的,我可以以某种方式使用这个 dll,还是让 CMAKE 生成一个 64 位的 dll?
    【解决方案2】:

    我通过切换到 32 位 freeglut.dll 文件解决了这个问题。我认为 32 位与 64 位取决于您的操作系统,但实际上取决于您拥有哪种 Python,因为我有 32 位 Python,我需要 32 位 dll。

    【讨论】:

      猜你喜欢
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多