Did somebody (Warren?) look into this? Could anybody reproduce it (i.e.
running examples/devel/gl01.py)? Or is this just a problem on Debian
GNU/Linux?


thanks,

Michael

This was the text of the bug report:

--8<--
On Fri, Oct 03, 2003 at 11:53:53AM +0200, Gabor E. Tusnady wrote:
>       I would like to use pymol with python-opengl script. On my
>       laptop I use
> pymol-0.86 width redhat 8.0. This package contains a lot of python
> example script, for example example/devel/gl01.py script. Running this
> script I have got a simple coordinate system displayed on the screen
> (the script is attached), while pymol reports:
> 
> ----
>  OpenGL based graphics front end:
>   GL_VENDOR: Mesa project: www.mesa3d.org
>   GL_RENDERER: Mesa GLX Indirect
>   GL_VERSION: 1.3 Mesa 4.0.4
>  Executive: object "gl01" created.
> ----
> 
>       Using the debianized version of pymol-0.90 with debian-sid on my
> workstation, I have got the following error message:
> 
> ----
>  OpenGL based graphics front end:
>   GL_VENDOR: NVIDIA Corporation
>   GL_RENDERER: GeForce2 MX/AGP/SSE
>   GL_VERSION: 1.4.0 NVIDIA 44.96
>  Adapting to GeForce hardware...
>   Detected 2 CPUs.  Enabled multithreaded rendering.
> Traceback (most recent call last):
>   File "/usr/lib/python2.3/site-packages/pymol/parser.py", line 203,
>   in parse
>     execfile(args[nest][0],pymol_names,pymol_names)
>   File "gl01.py", line 1, in ?
>     from pymol.opengl.gl import *
>   File "/usr/lib/python2.3/site-packages/pymol/opengl/gl/__init__.py",
>   line 32, 
> in ?
>     import _opengl
> ImportError:
> /usr/lib/python2.3/site-packages/pymol/opengl/gl/_opengl.so: undefined
> symbol: 
> glTexGeniv
> ----
> 
> I don't know whether I have not installed something, or it is a bug in
> the debianized pymol-0.90, or this error come from the NVIDIA opengl
> driver. 
> I'm really happy, if you can help me resolving this discrepancy.
> 
> Gabor

--8<--

On Sat, Oct 04, 2003 at 11:11:05PM +0200, Michael Banck wrote:
> Hi,
> 
> I've got a bug on pyopengl (http://bugs.debian.org/214026). Seems the
> immeadiate fix is
> 
> --- pymol-0.90.orig/setup.py
> +++ pymol-0.90/setup.py
> @@ -32,7 +32,7 @@
>  else:
>     inc_dirs=["layer0","layer1","layer2","layer3","layer4","layer5"]
>     libs=["GL","GLU","glut","png"]
> -   pyogl_libs = []
> +   pyogl_libs = ["GL","GLU","glut","png"]
>     lib_dirs=["/usr/X11R6/lib"]
>     def_macros=[("_PYMOL_MODULE",None),
>  #                  ("_PYMOL_NUMPY",None),
> 
> Is there a reason why these libraries are not defined in pyogl_libs?
> 
> With that fix, examples/devel/gl01.py works fine. gl02.py gl03.py still
> fail though, with this error message:
> 
>  Executive: object "gl02" created.
> Traceback (most recent call last):
>   File "gl02.py", line 39, in __call__
>     glVertexPointer(3,0,self.vert)
> NameError: global name 'glVertexPointer' is not defined
> 
> Digging a bit into contrib/pyopengl[1], I found that glVertexPointer
> will only get exported when NUMERIC is defined. As you can see from the
> patch above, _PYMOL_NUMPY is not defined and thus neither will be
> NUMERIC. If I uncomment that line above, I get this error while trying
> to build pymol:
> 
> building 'pymol.opengl.glu._glu_num' extension
> gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
> -fPIC -D_PYMOL_MODULE -D_PYMOL_NUMPY -D_HAVE_LIBPNG -Ilayer0 -Ilayer1 
> -Ilayer2 -Ilayer3 -Ilayer4 -Ilayer5 -I/usr/include/python2.3 -c 
> contrib/pyopengl/_glu_nummodule.c -o 
> build/temp.linux-i686-2.3/contrib/pyopengl/_glu_nummodule.o
> In file included from contrib/pyopengl/_glu_nummodule.c:8:
> contrib/pyopengl/_glumodule.c:660:25: arrayobject.h: No such file or directory
> In file included from contrib/pyopengl/_glu_nummodule.c:8:
> contrib/pyopengl/_glumodule.c: In function `py_glu_Build2DMipmaps':
> contrib/pyopengl/_glumodule.c:737: error: `PyArrayObject' undeclared (first 
> use in this function)
> contrib/pyopengl/_glumodule.c:737: error: (Each undeclared identifier is 
> reported only once
> contrib/pyopengl/_glumodule.c:737: error: for each function it appears in.)
> contrib/pyopengl/_glumodule.c:737: error: `ap' undeclared (first use in this 
> function)
> contrib/pyopengl/_glumodule.c:754: warning: implicit declaration of function 
> `PyArray_Check'
> contrib/pyopengl/_glumodule.c:755: error: syntax error before ')' token
> contrib/pyopengl/_glumodule.c:758: error: syntax error before ')' token
> contrib/pyopengl/_glumodule.c: At top level:
> contrib/pyopengl/_glumodule.c:132: warning: `GLUquadricType' defined but not 
> used
> error: command 'gcc' failed with exit status 1
> make: *** [install] Error 1
> 
> Finally, when I add HAVE_NUMERIC_ARRAYOBJECT_H to the defines in
> setup.py, pymol compiles fine[2] but gl02.py still fails:
> 
>  Executive: object "gl02" created.
> Traceback (most recent call last):
>   File "gl02.py", line 39, in __call__
>     glVertexPointer(3,0,self.vert)
> _opengl_num.error: Can't convert this type of array!
> 
> That's where I stopped debugging stuff, can anybody help me?
> 
> 
> thanks,
> 
> Michael
> 
> [1] btw, is this the standard pyopengl module? Why is it shipped with
> pymol? If it's modified, can't the changes be sent upstream so that a
> fork is not necessary? (I haven't checked at all, these thoughts just
> occured to me now)
> 
> [2] when byte-compiling, I get this warning with python2.3:
> /usr/lib/python2.3/site-packages/pymol/opengl/gl/glconst.py:438:
> FutureWarning: hex/oct constants > sys.maxint will return positive
> values in Python 2.4 and up
>   GL_CLIENT_ALL_ATTRIB_BITS = 0xffffffff
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> PyMOL-users mailing list
> PyMOL-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pymol-users
> 

Reply via email to