DrB*_*wts 21 glut pyopengl python-2.7
我在Win7 x64机器上运行Anaconda Python 2.7并使用
pip install PyOpenGL PyOpenGL_accelerate
Run Code Online (Sandbox Code Playgroud)
在Anaconda命令行安装PyOpenGL.
我有一些使用glutInit的代码(不是我自己必须承认的)
import sys
import math
import numpy
import OpenGL
from OpenGL.GL import *
from OpenGL.GLUT import *
import Image
import linkage
# ... a whole load of definitions etc ...
glutInit(sys.argv)
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB)
glutInitWindowSize(600, 600)
glutCreateWindow('linkage')
init()
initWindow()
glutIdleFunc(idle)
glutMainLoop()
Run Code Online (Sandbox Code Playgroud)
我通过在命令行输入以下命令来运行:
python main.py peaucellier.txt
Run Code Online (Sandbox Code Playgroud)
但后来得到以下错误(第371行是上面的glutInt(sys.argv)行)
File "C:/Users/Owner/Documents/Python Scripts/linkage/main.py", line 371, in <module>
glutInit(sys.argv)
File "C:\Anaconda\lib\site-packages\OpenGL\GLUT\special.py", line 333, in glutInit
_base_glutInit( ctypes.byref(count), holder )
File "C:\Anaconda\lib\site-packages\OpenGL\platform\baseplatform.py", line 407, in __call__
self.__name__, self.__name__,
NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling
Run Code Online (Sandbox Code Playgroud)
我看过这个论坛中发布的类似错误,但没有提出修复工作,这就是为什么我在问,这里有什么问题?
安装有问题吗?进口是否正确?
编辑:在为官方发布版本尝试了许多修复程序之后,我现在使用非官方发行版,它非常适用于Python扩展程序包的非官方Windows二进制文件
小智 15
根据下面的链接,问题是安装过剩而不是pip install.看来glut文件不是PyOpenGL或PyOpenGL_accelerate包的一部分.你必须单独下载它们.
Windows用户可以使用下面的链接来下载给定链接中提到的过剩. ftp://ftp.sgi.com/opengl/glut/glut3.html.old#windows
Linux用户可以使用以下命令安装过剩:
sudo apt-get install freeglut3-dev
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 :)
use*_*240 12
在寻找类似问题的解决方案后,我遇到了这个回答问题的谷歌小组:https://groups.google.com/forum/#!topic/gllumpy-users/aC1NjEHXtEE
从官方来源下载为pip时,OpenGL.GLUT存在问题.使用卸载OpenGL pip,然后从http://www.lfd.uci.edu/~gohlke/pythonlibs/下载OpenGL
对于安装了easy_install PyOpenGL或通过安装后出现此错误的Linux用户pip install PyOpenGL.
- >将分发包安装为:sudo apt-get install python-opengl- 这对我有用.
如果从easy_install,pip或conda安装PyOpenGL,请确保已经安装了GLUT实现,例如FreeGLUT(预构建的Windows二进制文件).
对于FreeGLUT,将分布式文件复制到硬盘驱动器上的某个位置,然后将bin目录(包含GLUT DLL)的路径添加到PATH环境变量中.然后PyOpenGL应该按预期工作.
这主要是因为您运行的是64-bitWindows put pip 正在安装32-bitPyOpenGL 版本。
要解决此问题,请按照下列步骤操作:
\n卸载现有的PyOpenGL,运行pip uninstall PyOpenGL PyOpenGL_accelerate
从此处下载 PyOpenGL 和 PyOpenGL 加速的 64 位版本:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl
如何选择下载哪一个?好吧,首先你需要检查你的 python 版本。运行python --version确定。\n然后根据您的版本下载PyOpenGL和PyOpenGL加速的whl文件。例如,如果您有Python 3.8,请下载这两个文件:
PyOpenGL\xe2\x80\x913.1.5\xe2\x80\x91cp38\xe2\x80\x91cp38\xe2\x80\x91win_amd64.whl
PyOpenGL_accelerate\xe2\x80\x913.1.5\xe2\x80\x91cp38\xe2\x80\x91cp38\xe2\x80\x91win_amd64.whl
同样,如果您运行Python 3.9,请下载这些:
PyOpenGL\xe2\x80\x913.1.5\xe2\x80\x91cp39\xe2\x80\x91cp39\xe2\x80\x91win_amd64.whl
PyOpenGL_accelerate\xe2\x80\x913.1.5\xe2\x80\x91cp39\xe2\x80\x91cp39\xe2\x80\x91win_amd64.whl
注意:必须下载amd64,毕竟您运行的是 64 位 Windows。
现在转到下载文件的文件夹并以管理员身份运行 powershell/cmd 。
\n使用 pip 强制安装这些文件。例如:
\npip install PyOpenGL-3.1.5-cp38-cp38-win_amd64.whl --force-reinstall
pip install PyOpenGL_accelerate-3.1.5-cp38-cp38-win_amd64.whl --force-reinstall
注意:先安装PyOpenGL,再安装PyOpenGL_accelerate
\n需要确定的一些事实:
\n*所有平台必须具有相同的位版本。
\n*系统类型、python、OpenGL需要是同位版本。就我而言,x64有点
*如果重新安装其中任何一个(Python、OpenGL),都需要重新启动桌面
\n*建议保留你的pip版本20.3,我从21.1.3
| 归档时间: |
|
| 查看次数: |
26109 次 |
| 最近记录: |