2014-11-02 29 views
14

Sono in esecuzione Anaconda Python 2.7 su una macchina x64 Win7 e usatePyOpenGL glutInit NullFunctionError

pip install PyOpenGL PyOpenGL_accelerate 

nella riga di comando per l'installazione Anaconda PyOpenGL.

ho qualche codice (non la mia devo confessare), che fa uso di 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() 

corro inserendo il seguente nella riga di comando:

python main.py peaucellier.txt 

Ma poi ottenere il seguente errore (linea 371 è il glutInt (sys.argv) riga sopra)

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 

ho guardato errori simili pos in questo forum ma nessuna delle correzioni proposte sta funzionando ed è per questo che sto chiedendo, cosa c'è che non va qui?

L'installazione è errata? Le importazioni sono corrette?

EDIT: Dopo aver provato molte molte correzioni per il rilascio ufficiale ora sto usando un rilascio non ufficiale che funziona perfettamente da Unofficial Windows Binaries for Python Extension Packages

risposta

9

Dopo aver cercato una soluzione per un problema simile mi sono imbattuto in questo gruppo Google che risponde alla domanda: https://groups.google.com/forum/#!topic/glumpy-users/aC1NjEHXtEE

C'è un problema con OpenGL.GLUT quando scaricato come pip dalla fonte ufficiale. Disinstallare OpenGL utilizzando pip, quindi scaricare OpenGL da http://www.lfd.uci.edu/~gohlke/pythonlibs/

+0

Ha lavorato per me su Win 7, python 2.7 Anaconda, soluzione freeglut proposta da altri come Mamuka Arabuli o Gnat non lo fanno, quindi provalo prima –

0

So che è un po 'tardi. Ho anche riscontrato questo problema con python 2.7 (32 bit) in Windows. Ho provato il metodo menzionato da user2723240 ma ancora fallito. Infine, ho risolto questo problema copiando glue32.dll su System32 nell'unità C e copiando glue32.dll nella directory del file di origine. Funziona bene ora.

+0

Sì, l'ho provato ma non ha funzionato sul mio set up. Solo le versioni non ufficiali collegate all'OP funzionano per me. – DrBwts

7

Per le persone su Linux con questo errore dopo l'installazione tramite easy_install PyOpenGL o pip install PyOpenGL.

-> Installare il pacchetto di distribuzione come: sudo apt-get install python-opengl - questo funziona per me.

0

Ho ricevuto lo stesso errore e ho risolto l'installazione dei file richiesti da here.

Scaricare questi file:

  • PyOpenGL-3.1.1-cp27-cp27m-win32.whl (download se il computer a 32 bit)

  • PyOpenGL-3.1.1-cp27-cp27m-win_amd64.whl (download se il computer a 64 bit)

  • PyOpenGL_accelerate-3.1.1-cp27-cp27m-win32.whl (download se il computer a 32 bit)

  • PyOpenGL_accelerate- 3.1.1-cp27-cp27m-win_amd64.whl (download se il computer a 64 bit)

installare questi .whl file per 64 bit:

pip install PyOpenGL-3.1.1-cp27-cp27m-win_amd64.whl 
pip install PyOpenGL_accelerate-3.1.1-cp27-cp27m-win_amd64.whl 

installare questi .whl file per 32 bit:

pip install PyOpenGL-3.1.1-cp27-cp27m-win32.whl 
pip install PyOpenGL_accelerate-3.1.1-cp27-cp27m-win32.whl 
+0

ergul, noterai che questo è lo stesso link del post di apertura. – DrBwts

+0

@DrBwts hai ragione. Questa domanda ti è stata chiesta 2 anni fa. Scrivo solo una soluzione passo dopo passo per le persone che non conoscono l'inglese molto bene. –

2

per Python 2.7, PyOpenGL ha bisogno di VC++ 9 compilatore, download e installarlo.

poi:

python -m pip install --upgrade pip 

pip install image 

pip install numpy 

pip install PyOpenGL PyOpenGL_accelerate 

Ho scaricato freeglut

decompresso e aggiunto directory bin al percorso al momento della chiamata: glutCreateWindow("sometitle") cambiato in glutCreateWindow(b'sometitle')

e mi hanno fatto girare su Windows 7

0

Su linux, il modulo pyopengl a tenta di utilizzare il modulo ctypes per caricare la libreria glut come semplicemente "glut". Secondo la documentazione di ctypes, la routine loadLibrary deve avere il nome file completo. Pertanto, ho creato un link simbolico a libglut.so e l'ho chiamato "glut" e tutto ha funzionato.

7

Secondo il link sottostante il problema era con l'installazione di glut piuttosto che pip install. Sembra che i file di gloria non facciano parte del pacchetto PyOpenGL o PyOpenGL_accelerate. Devi scaricarli separatamente.

https://stackoverflow.com/a/39181193/7030177

utente Windows può utilizzare il link qui sotto per scaricare sovrabbondanza come indicato nel link indicato. ftp://ftp.sgi.com/opengl/glut/glut3.html.old#windows

Linux Gli utenti possono semplicemente installare eccesso utilizzando il seguente comando:

sudo apt-get install freeglut3-dev 

Spero che questo aiuti :)

0

Il mio caso è diverso, Python 3.6 e Windows 10. Ma esattamente stesso messaggio di errore. Ho provato tutte le soluzioni di cui sopra, nessun successo. Scaricato il file WHL file sul mio computer e la versione di python da HERE

Quindi pip installa il nome file. Whl, niente più problemi!

La risposta è stata da un sito web cinese: Answer Link

1

Sì, questo è successo a me su Windows 10 in esecuzione pitone 2.713 Anaconda 4 a 64 bit. Avevo usato conda per installare pyopengl ma ho ricevuto lo stesso errore di cui sopra.Così ho scaricato freeglut da transmissionzero e ho appena copiato il freeglut.dll (64 bit per me) nella stessa directory del mio file sorgente (ha solo bisogno di essere nel percorso di ricerca dll) e tutto andava bene.

Problemi correlati