PyOpenGL glutInit NullFunctionError
Je suis en cours d'exécution Anaconda Python 2.7 sur un Win7 x64 machine et utilisé
pip install PyOpenGL PyOpenGL_accelerate
à l'Anaconda ligne de commande pour installer PyOpenGL.
J'ai un code (pas la mienne, je dois l'avouer) qui rend l'utilisation de 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()
- Je exécuter en entrant la commande suivante sur la ligne de commande:
python main.py peaucellier.txt
Mais alors obtiens l'erreur suivante (ligne 371 est le glutInt(sys.argv) ligne ci-dessus)
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
J'ai regardé des erreurs similaires posté dans ce forum, mais aucune des propositions de corrections sont de travail qui est pourquoi je pose la question, quel est le problème ici?
L'installation est en faute? Sont les importations correct?
EDIT: Après avoir essayé de nombreux de nombreux correctifs pour la version officielle, je suis maintenant à l'aide d'une version non officielle qui fonctionne parfaitement à partir de Officieux des Binaires pour Windows pour Python Extension de Paquets
OriginalL'auteur DrBwts | 2014-11-02
Vous devez vous connecter pour publier un commentaire.
Après autour de la recherche d'une solution à un problème similaire, j'ai couru à travers ce groupe google qui répond à la question: https://groups.google.com/forum/#!topic/glumpy-utilisateurs/aC1NjEHXtEE
Il y a un problème avec OpenGL.GLUT quand téléchargé comme pip à partir de la source officielle. Désinstaller OpenGL en utilisant
pip
, puis télécharger OpenGL de http://www.lfd.uci.edu/~gohlke/pythonlibs/OriginalL'auteur user2723240
Selon le lien ci-dessous, le problème était avec la surabondance de l'installation plutôt que de
pip install
. Il semble glut fichiers ne font pas partie de PyOpenGL ou PyOpenGL_accelerate paquet. Vous devez les télécharger séparément.https://stackoverflow.com/a/39181193/7030177
Utilisateur Windows peuvent utiliser le lien ci-dessous pour télécharger glut comme indiqué dans le lien donné.
ftp://ftp.sgi.com/opengl/glut/glut3.html.old#windows
Linux, les Utilisateurs peuvent simplement installer surabondance de l'aide de la commande suivante:
Espère que cela aide 🙂
OriginalL'auteur Shashanka Prajapati
Pour les gens sur Linux avec cette erreur après l'installation via
easy_install PyOpenGL
oupip install PyOpenGL
.-> Installer le package de distribution:
sudo apt-get install python-opengl
- cela fonctionne pour moi.OriginalL'auteur pds
Si l'installation de PyOpenGL de easy_install, pip ou conda, assurez-vous que vous avez déjà installé une SURABONDANCE de mise en œuvre, tels que FreeGLUT (prêts à l'emploi des binaires pour Windows).
Pour FreeGLUT, copiez les fichiers distribués à un emplacement sur votre disque dur, puis ajouter le chemin du répertoire bin (qui contient la SURABONDANCE Dll) dans votre variable d'environnement PATH. Puis PyOpenGL devrait fonctionner comme prévu.
OriginalL'auteur Gnat
pour python 2.7, PyopenGL besoins vc++ 9 compilateur, télécharger et de l'installer.
alors:
J'ai téléchargé freeglut
décompressé et a ajouté répertoire bin dans le path
lors de l'appel:
glutCreateWindow("sometitle")
changé à
glutCreateWindow(b'sometitle')
et a obtenu ce qu'il fonctionne sur windows 7
OriginalL'auteur Mamuka Arabuli
Oui, cela m'est arrivé sur Windows 10 running python 2.713 anaconda 4 64 bits. J'avais utilisé conda pour installer pyopengl mais il a reçu la même erreur que ci-dessus. J'ai donc téléchargé freeglut de transmissionzero et juste copié le freeglut.dll (64 bits pour moi) dans le même dossier que mon fichier source (il a juste besoin d'être dans la dll searchpath) et tout était bon.
OriginalL'auteur rhoids
Je sais que c'est un peu tard. J'ai aussi rencontré ce problème avec python 2.7 (32 bits) dans windows. J'ai essayé la méthode mentionnée par user2723240 mais n'a toujours pas. Enfin, j'ai résolu ce problème en copiant glue32.dll pour System32 dans le lecteur C et copie glue32.dll dans mon répertoire du fichier source. Il fonctionne bien maintenant.
OriginalL'auteur ccy
J'ai eu le même message d'erreur et résolu d'installer les fichiers requis à partir de ici.
Télécharger ces fichiers:
PyOpenGL-3.1.1-cp27-cp27m-win32.de la whl (télécharger si votre ordinateur 32 bits )
PyOpenGL-3.1.1-cp27-cp27m-win_amd64.de la whl (télécharger si votre ordinateur 64 bits )
PyOpenGL_accelerate-3.1.1-cp27-cp27m-win32.de la whl (télécharger si votre ordinateur 32 bits )
PyOpenGL_accelerate-3.1.1-cp27-cp27m-win_amd64.de la whl (télécharger si votre ordinateur 64 bits )
installer ces .whl fichiers pour la version 64 bits:
installer ces .whl fichiers 32 bits:
vous êtes de droite. À cette question posée par vous il y a 2 ans. Je viens d'écrire une solution étape par étape pour les personnes qui ne connaissent pas très bien l'anglais.
OriginalL'auteur Harun ERGUL
Sur linux, le pyopengl module tente d'utiliser ctypes module pour charger la bibliothèque glut comme simplement "glut'. Selon ctypes la documentation de la fonction loadLibrary de la routine doit être donné le nom de fichier complet. Donc, j'ai fait un lien symbolique vers libglut.donc, et l'a nommé la "surabondance" et tout fonctionnait parfaitement.
OriginalL'auteur Travis
Mon cas est différent, Python 3.6 et windows 10. Cependant exactement le même message d'erreur. Essayé toutes les solutions ci-dessus, sans succès.
Téléchargé
WHL
droit de fichier de mon ordinateur et la version de python à partir de ICIPuis pip installe nom de fichier.
Whl
, plus aucun problème!La réponse a été à partir d'un site web en Chinois: Réponse De Lien
OriginalL'auteur Mars Carl
Le suivant devrait fonctionner pour Anaconda utilisateurs:
conda install - c conda-forge freeglut
https://anaconda.org/conda-forge/freeglut
OriginalL'auteur Nirmal