From: Jason H. <hoo...@me...> - 2005-03-18 10:11:43
|
Hi, I have two questions, I'll ask the simple one first. I migrated from Matlab to Octave which uses gnuplot and thus provides 3D plotting capability, which is adequate. Matplotlib is 2D, are there any good 3D plotters out there for python? Second question: I can't install Matplotlib and maybe someone will have seen the symptom before or have some bright ideas to help me figure it out. I'm running SuSE 9.1, python 2.3.3, and seem to have Tcl/Tk/Tkinter installed OK. For example: #!/usr/bin/env python from Tkinter import * root = Tk() w = Label(root, text="Hello, world!") w.pack() root.mainloop() does the right thing by bringing up a window with the text. $PYTHONHOME = /usr I set BUILD_GTKAGG = 0 in setup.py. In an xterm as root I ran this and the output follows \start # python setup.py build Xlib: connection to ":0.0" refused by server Xlib: Invalid MIT-MAGIC-COOKIE-1 key Using default library and include directories for Tcl and Tk because a Tk window failed to open. You may need to define DISPLAY for Tk to work so that setup can determine where your libraries are located. running build running build_py creating build creating build/lib.linux-i686-2.3 copying lib/pylab.py -> build/lib.linux-i686-2.3 creating build/lib.linux-i686-2.3/matplotlib copying lib/matplotlib/patches.py -> build/lib.linux-i686-2.3/matplotlib copying lib/matplotlib/_image.py -> build/lib.linux-i686-2.3/matplotlib ... etc copying a bunch of files into the build directory copying lib/pytz/zoneinfo/Africa/Tripoli.py -> build/lib.linux-i686-2.3/pytz/zoneinfo/Africa copying lib/pytz/zoneinfo/Africa/Banjul.py -> build/lib.linux-i686-2.3/pytz/zoneinfo/Africa running build_ext building 'matplotlib._nc_transforms' extension creating build/temp.linux-i686-2.3 creating build/temp.linux-i686-2.3/src creating build/temp.linux-i686-2.3/CXX gcc -pthread -fno-strict-aliasing -DNDEBUG -D_FILE_OFFSET_BITS=64 -DHAVE_LARGEFILE_SUPPORT -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -fPIC -Isrc -I. -I/usr/include/python2.3 -c CXX/IndirectPythonInterface.cxx -o build/temp.linux-i686-2.3/CXX/IndirectPythonInterface.o -DNUMERIC=1 gcc -pthread -fno-strict-aliasing -DNDEBUG -D_FILE_OFFSET_BITS=64 -DHAVE_LARGEFILE_SUPPORT -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -fPIC -Isrc -I. -I/usr/include/python2.3 -c CXX/cxxsupport.cxx -o build/temp.linux-i686-2.3/CXX/cxxsupport.o -DNUMERIC=1 gcc -pthread -fno-strict-aliasing -DNDEBUG -D_FILE_OFFSET_BITS=64 -DHAVE_LARGEFILE_SUPPORT -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -fPIC -Isrc -I. -I/usr/include/python2.3 -c src/_nc_transforms.cpp -o build/temp.linux-i686-2.3/src/_nc_transforms.o -DNUMERIC=1 In file included from /usr/include/python2.3/Python.h:8, from CXX/Objects.hxx:9, from CXX/Extensions.hxx:18, from src/_transforms.h:12, from src/_nc_transforms.cpp:2: /usr/include/python2.3/pyconfig.h:847:1: warning: "_POSIX_C_SOURCE" redefined In file included from /usr/include/g++/i586-suse-linux/bits/os_defines.h:39, from /usr/include/g++/i586-suse-linux/bits/c++config.h:35, from /usr/include/g++/functional:53, from src/_nc_transforms.cpp:1: /usr/include/features.h:131:1: warning: this is the location of the previous definition gcc -pthread -fno-strict-aliasing -DNDEBUG -D_FILE_OFFSET_BITS=64 -DHAVE_LARGEFILE_SUPPORT -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -fPIC -Isrc -I. -I/usr/include/python2.3 -c CXX/cxxextensions.c -o build/temp.linux-i686-2.3/CXX/cxxextensions.o -DNUMERIC=1 gcc -pthread -fno-strict-aliasing -DNDEBUG -D_FILE_OFFSET_BITS=64 -DHAVE_LARGEFILE_SUPPORT -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -fPIC -Isrc -I. -I/usr/include/python2.3 -c src/mplutils.cpp -o build/temp.linux-i686-2.3/src/mplutils.o -DNUMERIC=1 gcc -pthread -fno-strict-aliasing -DNDEBUG -D_FILE_OFFSET_BITS=64 -DHAVE_LARGEFILE_SUPPORT -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -fPIC -Isrc -I. -I/usr/include/python2.3 -c CXX/cxx_extensions.cxx -o build/temp.linux-i686-2.3/CXX/cxx_extensions.o -DNUMERIC=1 g++ -pthread -shared build/temp.linux-i686-2.3/src/_nc_transforms.o build/temp.linux-i686-2.3/src/mplutils.o build/temp.linux-i686-2.3/CXX/cxx_extensions.o build/temp.linux-i686-2.3/CXX/cxxsupport.o build/temp.linux-i686-2.3/CXX/IndirectPythonInterface.o build/temp.linux-i686-2.3/CXX/cxxextensions.o -lstdc++ -lm -o build/lib.linux-i686-2.3/matplotlib/_nc_transforms.so building 'matplotlib.backends._tkagg' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -D_FILE_OFFSET_BITS=64 -DHAVE_LARGEFILE_SUPPORT -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -fPIC -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/include -Isrc -Iagg22/include -I. -I/usr/local/include -I/usr/include -I/usr/local/include/freetype2 -I/usr/local/include/freetype2 -I/usr/local/include/freetype2 -I/usr/include/freetype2 -Isrc/freetype2 -Iagg22/include/freetype2 -I./freetype2 -I/usr/local/include/freetype2 -I/usr/include/freetype2 -I/usr/include/python2.3 -c src/_tkagg.cpp -o build/temp.linux-i686-2.3/src/_tkagg.o g++ -pthread -shared build/temp.linux-i686-2.3/src/_tkagg.o -L/usr/local/lib -L/usr/local/lib -L/usr/local/lib -L/usr/lib -L/usr/local/lib -L/usr/lib -ltk -ltcl -lpng -lz -lstdc++ -lm -lfreetype -lz -lstdc++ -lm -o build/lib.linux-i686-2.3/matplotlib/backends/_tkagg.so /linux1/usr/bin/../lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld: cannot find -ltk collect2: ld returned 1 exit status error: command 'g++' failed with exit status 1 \end I'm figuring the "Tk window open failed" bit at the start is just because it seems to take a few seconds for Tk windows to appear on my system, and its not coded to wait. So assuming that's not fatal, it seems the problem boils down to "cannot find -ltk". I have searched for a few hours on google to no avail. The only things I can suspect are maybe: - I might be missing some installed components for development stuff in Tcl or g++? - Maybe need to have some environment variables set (e.g. for Tk?) - Have some sort of path mismatch where it's looking for something that is somewhere else? I've compiled a few things successfully on this set up now and not come across this one, any thoughts appreciated. Cheers Jason |
From: Todd M. <jm...@st...> - 2005-03-18 14:23:34
|
On Fri, 2005-03-18 at 05:02, Jason Hoogland wrote: > Second question: I can't install Matplotlib and maybe someone will have seen > the symptom before or have some bright ideas to help me figure it out. I'm > running SuSE 9.1, python 2.3.3, and seem to have Tcl/Tk/Tkinter installed OK. > I set BUILD_GTKAGG = 0 in setup.py. In an xterm as root I ran this and the > output follows > > \start > > # python setup.py build > Xlib: connection to ":0.0" refused by server > Xlib: Invalid MIT-MAGIC-COOKIE-1 key > Using default library and include directories for Tcl and Tk because a > Tk window failed to open. You may need to define DISPLAY for Tk to work > so that setup can determine where your libraries are located. > running build > running build_py > creating build > creating build/lib.linux-i686-2.3 > copying lib/pylab.py -> build/lib.linux-i686-2.3 > creating build/lib.linux-i686-2.3/matplotlib > copying lib/matplotlib/patches.py -> build/lib.linux-i686-2.3/matplotlib > copying lib/matplotlib/_image.py -> build/lib.linux-i686-2.3/matplotlib > > ... etc copying a bunch of files into the build directory [mostly snipped] > g++ -pthread -shared build/temp.linux-i686-2.3/src/_tkagg.o -L/usr/local/lib > -L/usr/local/lib -L/usr/local/lib -L/usr/lib -L/usr/local/lib -L/usr/lib -ltk > -ltcl -lpng -lz -lstdc++ -lm -lfreetype -lz -lstdc++ -lm -o > build/lib.linux-i686-2.3/matplotlib/backends/_tkagg.so > /linux1/usr/bin/../lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld: > cannot find -ltk > collect2: ld returned 1 exit status > error: command 'g++' failed with exit status 1 > > \end > > I'm figuring the "Tk window open failed" bit at the start is just because it > seems to take a few seconds for Tk windows to appear on my system, and its > not coded to wait. That "Tk window open failed" problem looks to me like it may be *the* problem. matplotlib opens a Tk window to help figure out where Tk is; the fallback isn't working. In your case I think the Tk window failed because "root" is trying to open a window on a display owned by your non-priviledged account. Having the system say "no" to root about anything is really counter intuitive to me, but I've experienced it myself and it's discussed some here: http://lists.debian.org/debian-user/1998/09/msg00113.html The article suggests that if you do % xhost +localhost in your non-priviledged account before trying to build as root, X will allow the Tk window open. > So assuming that's not fatal, it seems the problem boils > down to "cannot find -ltk". I have searched for a few hours on google to no > avail. The only things I can suspect are maybe: > > - I might be missing some installed components for development stuff in Tcl or > g++? Maybe. On my RHEL3 system, I have tk-devel-8.3.5-92.2 installed. Hope this helps, Todd |
From: Jason H. <hoo...@me...> - 2005-03-21 08:58:51
|
Todd, Thanks, your suggestion prodded me in the right direction, a good old=20 permission issue. It's all working now. Am pasting my notes below. Jason I tried the remedies suggested here: http://lists.debian.org/debian-user/1998/09/msg00113.html (xhost +localhost) and here: http://lists.debian.org/debian-user/1998/08/msg03179.html (use ssh which takes care of the $DISPLAY enviro variable) In the second I no longer got the two lines at the top of the build output: Xlib: connection to ":0.0" refused by server Xlib: Invalid MIT-MAGIC-COOKIE-1 key But everything else went exactly the same. So then I decided to: # chmod -R a+rwx * within the untarred Matplotlib installation root (/matplotlib-0.72.1), to o= pen=20 up the permissions. After again setting BUILD_GTKAGG=3D0 in setup.py I the= n=20 ran: > python setup.py build as my normal (non-root) user and it went perfectly. Since my python=20 installation is in /usr/lib/python which requires root privileges to create= =20 directories etc, I then su'd and from the same directory: # python setup.py install and it transferred the files etc. as desired to the python installation. I= =20 then had to change /usr/share/matplotlib/.matplotlibrc: \snip #### CONFIGURATION BEGINS HERE backend : GTKAgg # the default backend numerix : Numeric # Numeric or numarray interactive : False # see=20 http://matplotlib.sourceforge.net/interactive.html toolbar : toolbar2 # None | classic | toolbar2 timezone : UTC # a pytz timezone string, eg US/Central or=20 Europe/Paris \snip so that the backend was set to 'TKAgg' and interactive set to 'True'. It=20 didn't like 'TKAgg', it needs 'TkAgg'. I confirmed operation with: python>>> from pylab import * python>>> plot([1,2,3]) python>>> [<matplotlib.lines.Line2D instance at 0x40479a2c>] and the Tk window comes up and is zoomable etc. Looks good, looks like the= =20 effort might be worth it!=20 On Saturday 19 March 2005 00:23, Todd Miller wrote: > On Fri, 2005-03-18 at 05:02, Jason Hoogland wrote: > > Second question: I can't install Matplotlib and maybe someone will have > > seen the symptom before or have some bright ideas to help me figure it > > out. I'm running SuSE 9.1, python 2.3.3, and seem to have Tcl/Tk/Tkint= er > > installed OK. > > > > I set BUILD_GTKAGG =3D 0 in setup.py. In an xterm as root I ran this a= nd > > the output follows > > > > \start > > > > # python setup.py build > > Xlib: connection to ":0.0" refused by server > > Xlib: Invalid MIT-MAGIC-COOKIE-1 key > > Using default library and include directories for Tcl and Tk because a > > Tk window failed to open. You may need to define DISPLAY for Tk to work > > so that setup can determine where your libraries are located. > > running build > > running build_py > > creating build > > creating build/lib.linux-i686-2.3 > > copying lib/pylab.py -> build/lib.linux-i686-2.3 > > creating build/lib.linux-i686-2.3/matplotlib > > copying lib/matplotlib/patches.py -> build/lib.linux-i686-2.3/matplotlib > > copying lib/matplotlib/_image.py -> build/lib.linux-i686-2.3/matplotlib > > > > ... etc copying a bunch of files into the build directory > > [mostly snipped] > > > g++ -pthread -shared build/temp.linux-i686-2.3/src/_tkagg.o > > -L/usr/local/lib -L/usr/local/lib -L/usr/local/lib -L/usr/lib > > -L/usr/local/lib -L/usr/lib -ltk -ltcl -lpng -lz -lstdc++ -lm -lfreetype > > -lz -lstdc++ -lm -o > > build/lib.linux-i686-2.3/matplotlib/backends/_tkagg.so > > /linux1/usr/bin/../lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-s= us > >e-linux/bin/ld: cannot find -ltk > > collect2: ld returned 1 exit status > > error: command 'g++' failed with exit status 1 > > > > \end > > > > I'm figuring the "Tk window open failed" bit at the start is just becau= se > > it seems to take a few seconds for Tk windows to appear on my system, a= nd > > its not coded to wait. > > That "Tk window open failed" problem looks to me like it may be *the* > problem. matplotlib opens a Tk window to help figure out where Tk is; > the fallback isn't working. In your case I think the Tk window failed > because "root" is trying to open a window on a display owned by your > non-priviledged account. Having the system say "no" to root about > anything is really counter intuitive to me, but I've experienced it > myself and it's discussed some here: > > http://lists.debian.org/debian-user/1998/09/msg00113.html > > The article suggests that if you do > > % xhost +localhost > > in your non-priviledged account before trying to build as root, X will > allow the Tk window open. > > > So assuming that's not fatal, it seems the problem boils > > down to "cannot find -ltk". I have searched for a few hours on google = to > > no avail. The only things I can suspect are maybe: > > > > - I might be missing some installed components for development stuff in > > Tcl or g++? > > Maybe. On my RHEL3 system, I have tk-devel-8.3.5-92.2 installed. > > Hope this helps, > Todd =2D-=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D Jason Hoogland =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0h...@me... Doctoral student =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ph(= w) +61 7 3365 4457 Centre for Hypersonics =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ph(mob) +61 413 30= 0 887 The University of Queensland =C2=A0 =C2=A0UTC+10 Brisbane QLD 4072, Australia =C2=A0 =C2=A0http://www.marsgravity.org =2D--------------------------------------------------------- |