From: Bryan W. <bry...@gm...> - 2015-05-21 20:08:18
|
Good afternoon, My name is Bryan Williams. I work for the Florida Forest Service in their Forest Logistics and Support Bureau. I’m working on a program that takes weather data and visualizes it using matplotlib and Basemap. I’m currently having an issue with matplotlib 1.4.3 for Python 3.4.3 running under Solaris 5.10. I am getting a Runtime Error whenever I try calling the read_png file from matplotlib._png. (I’m using this to add a small .png file of the Forest Service’s sheld to the picture). The error is the following: Traceback (most recent call last): File "drawmaps.py", line 845, in <module> arr_lena = read_png(fn) RuntimeError: Error closing dupe file handle I don’t quite understand the error I’m getting, and as you can see, the traceback gives very little information. I also tried Google for help, but to no avail; entering the error message as is into Google doesn’t return anything relating to the problem, and putting quotes around “Error closing dupe file handle” yields about 10 results, with one of them being an unanswered question from 2014 regarding the same issue. As per your request on the website, here’s what I get from uname –a: SunOS [server name withheld] 5.10 Generic_141444-09 sun4v sparc SUNW,SPARC-Enterprise-T5220 I built Python 3.4.3 from source and installed matplotlib through pip, and didn’t make any changes to the matplotlibrc file. I was able to reproduce the problem again running these commands in the Python interactive prompt, which emulates the snippet of script that causes the error: Python 3.4.3 (default, May 15 2015, 13:52:23) [GCC 4.9.2] on sunos5 Type "help", "copyright", "credits" or "license" for more information. >>> from matplotlib._png import read_png >>> from matplotlib.cbook import get_sample_data >>> import os; path=os.getcwd() >>> fn = get_sample_data(path + '/resources/shield.png', asfileobj=False) >>> arr_lena = read_png(fn) Traceback (most recent call last): File "<stdin>", line 1, in <module> RuntimeError: Error closing dupe file handle If you’d like a copy of the problem script, please let me know. Any and all help is greatly appreciated. Thank you in advance! -- BMW |
From: Benjamin R. <ben...@ou...> - 2015-05-24 18:04:35
|
Bryan, First off, avoid importing things from modules that start with an underscore. Because Python doesn't have semantics for public/private APIs like C++ and Java does, the underscore is treated as an indicator to developers that it is to be treated as private. The implication is that we are free to change the API of "private" modules and functions between releases, without warning or recourse, which would lead to breakage of your scripts if you use them. So, use it at your peril. I would recommend using plt.imread() instead, or use the Pillow package to read your data as a numpy array that you can then plot. Now, onto your issue. I suspect it might be related to changes we made in 1.4 to have a cross-platform file-handle. However, the solaris platform is not regularly tested by anybody, so it is quite likely we broke something there. Now, in the master branch on github, we completely rewrote nearly all of the C++ code, so I while it may still be broken there, perhaps we might get a more useful error message or something different entirely? Can you try building from the master branch and letting us know? Cheers! Ben Root P.S. - The script in question wasn't perhaps written originally by a former Meteorologist colleague from the University of Oklahoma? ;-) If it was, he was my officemate! On Thu, May 21, 2015 at 4:08 PM, Bryan Williams < bry...@gm...> wrote: > Good afternoon, > > > > My name is Bryan Williams. I work for the Florida Forest Service in their > Forest Logistics and Support Bureau. > > > > I’m working on a program that takes weather data and visualizes it using > matplotlib and Basemap. I’m currently having an issue with matplotlib 1.4.3 > for Python 3.4.3 running under Solaris 5.10. I am getting a Runtime Error > whenever I try calling the read_png file from matplotlib._png. (I’m using > this to add a small .png file of the Forest Service’s sheld to the > picture). The error is the following: > > > > Traceback (most recent call last): > > File "drawmaps.py", line 845, in <module> > > arr_lena = read_png(fn) > > RuntimeError: Error closing dupe file handle > > > > I don’t quite understand the error I’m getting, and as you can see, the > traceback gives very little information. I also tried Google for help, but > to no avail; entering the error message as is into Google doesn’t return > anything relating to the problem, and putting quotes around “Error closing > dupe file handle” yields about 10 results, with one of them being an > unanswered question from 2014 regarding the same issue. > > > > As per your request on the website, here’s what I get from uname –a: > > > > SunOS [server name withheld] 5.10 Generic_141444-09 sun4v sparc > SUNW,SPARC-Enterprise-T5220 > > > > I built Python 3.4.3 from source and installed matplotlib through pip, and > didn’t make any changes to the matplotlibrc file. > > > > I was able to reproduce the problem again running these commands in the > Python interactive prompt, which emulates the snippet of script that causes > the error: > > > > Python 3.4.3 (default, May 15 2015, 13:52:23) > > [GCC 4.9.2] on sunos5 > > Type "help", "copyright", "credits" or "license" for more information. > > >>> from matplotlib._png import read_png > > >>> from matplotlib.cbook import get_sample_data > > >>> import os; path=os.getcwd() > > >>> fn = get_sample_data(path + '/resources/shield.png', asfileobj=False) > > >>> arr_lena = read_png(fn) > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > RuntimeError: Error closing dupe file handle > > > > > > If you’d like a copy of the problem script, please let me know. Any and > all help is greatly appreciated. > > > > Thank you in advance! > > > > -- BMW > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > |
From: Thomas C. <tca...@gm...> - 2015-05-24 18:05:38
|
Bryan, If you subscribe to the list you will be able to post with out moderation. Does this happen with any of the other sample data? I don't think that `get_sample_data` is doing you any good here as you are passing it an absolute path (from `os.getcwd()`) which is passed into `os.path.join` which when it encounters and absolute path discards everything to the left so that line is just returning back your input. Does it work to open any other png or does _only_ this png have issues? You are reaching into the nominally private parts of the mpl api here, I would suggest using `mpl.image.imread` instead. It might be worth using something like PIL/pillow, imread ( https://pypi.python.org/pypi/imread), imageio (https://imageio.github.io/) or scikit-image for alternate implementations of png readers. None of the core developers have access to a Solaris machine so it is very difficult for us to provide much better help on this. Tom On Sun, May 24, 2015 at 1:38 PM Bryan Williams <bry...@gm...> wrote: > Good afternoon, > > > > My name is Bryan Williams. I work for the Florida Forest Service in their > Forest Logistics and Support Bureau. > > > > I’m working on a program that takes weather data and visualizes it using > matplotlib and Basemap. I’m currently having an issue with matplotlib 1.4.3 > for Python 3.4.3 running under Solaris 5.10. I am getting a Runtime Error > whenever I try calling the read_png file from matplotlib._png. (I’m using > this to add a small .png file of the Forest Service’s sheld to the > picture). The error is the following: > > > > Traceback (most recent call last): > > File "drawmaps.py", line 845, in <module> > > arr_lena = read_png(fn) > > RuntimeError: Error closing dupe file handle > > > > I don’t quite understand the error I’m getting, and as you can see, the > traceback gives very little information. I also tried Google for help, but > to no avail; entering the error message as is into Google doesn’t return > anything relating to the problem, and putting quotes around “Error closing > dupe file handle” yields about 10 results, with one of them being an > unanswered question from 2014 regarding the same issue. > > > > As per your request on the website, here’s what I get from uname –a: > > > > SunOS [server name withheld] 5.10 Generic_141444-09 sun4v sparc > SUNW,SPARC-Enterprise-T5220 > > > > I built Python 3.4.3 from source and installed matplotlib through pip, and > didn’t make any changes to the matplotlibrc file. > > > > I was able to reproduce the problem again running these commands in the > Python interactive prompt, which emulates the snippet of script that causes > the error: > > > > Python 3.4.3 (default, May 15 2015, 13:52:23) > > [GCC 4.9.2] on sunos5 > > Type "help", "copyright", "credits" or "license" for more information. > > >>> from matplotlib._png import read_png > > >>> from matplotlib.cbook import get_sample_data > > >>> import os; path=os.getcwd() > > >>> fn = get_sample_data(path + '/resources/shield.png', asfileobj=False) > > >>> arr_lena = read_png(fn) > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > RuntimeError: Error closing dupe file handle > > > > > > If you’d like a copy of the problem script, please let me know. Any and > all help is greatly appreciated. > > > > Thank you in advance! > > > > -- BMW > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Bryan W. <bry...@gm...> - 2015-05-28 13:13:40
|
Thanks to the both of you. First off, apologies for getting back to you several days late. I was out of town for the holiday weekend, and I didn't get a chance to work on this for the last two days as I had other business to tend to on Tuesday, and was out of the office all day Wednesday. I tried to install from the master build on Github, and it seemed to run fine, until I ended up with this error (and verbose details, text wall incoming): ============================================================================ Edit setup.cfg to change the build options BUILDING MATPLOTLIB matplotlib: yes [1.5.dev1] python: yes [3.4.3 (default, May 15 2015, 13:52:23) [GCC 4.9.2]] platform: yes [sunos5] REQUIRED DEPENDENCIES AND EXTENSIONS numpy: yes [version 1.9.2] six: yes [using six version 1.9.0] dateutil: yes [using dateutil version 2.4.2] pytz: yes [using pytz version 2015.4] tornado: yes [tornado was not found. It is required for the WebAgg backend. pip/easy_install may attempt to install it after matplotlib.] pyparsing: yes [using pyparsing version 2.0.3] libagg: yes [pkg-config information for 'libagg' could not be found. Using local copy.] freetype: yes [version 2.4.8] png: yes [version 1.2.35] qhull: yes [pkg-config information for 'qhull' could not be found. Using local copy.] OPTIONAL SUBPACKAGES sample_data: yes [installing] toolkits: yes [installing] tests: yes [using nose version 1.3.6 / using unittest.mock] toolkits_tests: yes [using nose version 1.3.6 / using unittest.mock] OPTIONAL BACKEND EXTENSIONS macosx: no [Mac OS-X only] qt5agg: no [PyQt5 not found] qt4agg: no [PySide not found; PyQt4 not found] gtk3agg: no [Requires pygobject to be installed.] gtk3cairo: no [Requires cairocffi or pycairo to be installed.] gtkagg: no [Requires pygtk] tkagg: yes [installing, version not identified] wxagg: no [requires wxPython] gtk: no [Requires pygtk] agg: yes [installing] cairo: no [cairocffi or pycairo not found] windowing: no [Microsoft Windows only] OPTIONAL LATEX DEPENDENCIES dvipng: no ghostscript: no latex: no pdftops: no running build running build_py copying lib/matplotlib/mpl-data/matplotlibrc -> build/lib.solaris-2.10-sun4v.32bit-3.4/matplotlib/mpl-data running build_ext building 'matplotlib.ft2font' extension gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib_ft2font_ARRAY_API -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -I/usr/local/lib/python3.4/site-packages/numpy/core/include -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include -I. -I/usr/local/include/python3.4m -c src/ft2font.cpp -o build/temp.solaris-2.10-sun4v.32bit-3.4/src/ft2font.o In file included from /usr/local/include/python3.4m/Python.h:8:0, from src/mplutils.h:21, from src/ft2font.cpp:8: /usr/local/include/python3.4m/pyconfig.h:1387:0: warning: "_FILE_OFFSET_BITS" redefined #define _FILE_OFFSET_BITS 64 ^ In file included from /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/include-fixed/wchar.h:20:0, from /opt/csw/include/c++/4.9.2/cwchar:44, from /opt/csw/include/c++/4.9.2/bits/postypes.h:40, from /opt/csw/include/c++/4.9.2/bits/char_traits.h:40, from /opt/csw/include/c++/4.9.2/string:40, from src/ft2font.cpp:5: /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/include-fixed/sys/feature_tests.h:196:0: note: this is the location of the previous definition #define _FILE_OFFSET_BITS 32 ^ gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib_ft2font_ARRAY_API -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -I/usr/local/lib/python3.4/site-packages/numpy/core/include -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include -I. -I/usr/local/include/python3.4m -c src/ft2font_wrapper.cpp -o build/temp.solaris-2.10-sun4v.32bit-3.4/src/ft2font_wrapper.o In file included from /usr/local/include/python3.4m/Python.h:8:0, from src/mplutils.h:21, from src/ft2font_wrapper.cpp:1: /usr/local/include/python3.4m/pyconfig.h:1387:0: warning: "_FILE_OFFSET_BITS" redefined #define _FILE_OFFSET_BITS 64 ^ In file included from /usr/include/sys/int_types.h:34:0, from /usr/include/sys/stdint.h:17, from /usr/include/stdint.h:17, from /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/include/stdint.h:9, from src/mplutils.h:11, from src/ft2font_wrapper.cpp:1: /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/include-fixed/sys/feature_tests.h:196:0: note: this is the location of the previous definition #define _FILE_OFFSET_BITS 32 ^ In file included from /usr/local/include/python3.4m/Python.h:36:0, from src/mplutils.h:21, from src/ft2font_wrapper.cpp:1: /usr/include/unistd.h:496:75: error: conflicting declaration of C function 'void swab(const void*, void*, ssize_t)' extern void swab(const void *_RESTRICT_KYWD, void *_RESTRICT_KYWD, ssize_t); ^ In file included from /usr/local/include/python3.4m/Python.h:34:0, from src/mplutils.h:21, from src/ft2font_wrapper.cpp:1: /usr/include/stdlib.h:144:13: note: previous declaration 'void swab(const char*, char*, ssize_t)' extern void swab(const char *, char *, ssize_t); ^ error: command 'gcc' failed with exit status 1 I have gcc on the box. I also installed the C compiler for Solaris (cc), but I couldn't seem to find an option to switch it so that it uses cc rather than gcc. Thanks again for all you do, and thanks for the help. -- BMW On Sun, May 24, 2015 at 2:05 PM, Thomas Caswell <tca...@gm...> wrote: > Bryan, > > If you subscribe to the list you will be able to post with out moderation. > > Does this happen with any of the other sample data? > > I don't think that `get_sample_data` is doing you any good here as you are > passing it an absolute path (from `os.getcwd()`) which is passed into > `os.path.join` which when it encounters and absolute path discards > everything to the left so that line is just returning back your input. > > Does it work to open any other png or does _only_ this png have issues? > > You are reaching into the nominally private parts of the mpl api here, I > would suggest using `mpl.image.imread` instead. > > It might be worth using something like PIL/pillow, imread ( > https://pypi.python.org/pypi/imread), imageio (https://imageio.github.io/) > or scikit-image for alternate implementations of png readers. > > None of the core developers have access to a Solaris machine so it is very > difficult for us to provide much better help on this. > > Tom > > On Sun, May 24, 2015 at 1:38 PM Bryan Williams < > bry...@gm...> wrote: > >> Good afternoon, >> >> >> >> My name is Bryan Williams. I work for the Florida Forest Service in their >> Forest Logistics and Support Bureau. >> >> >> >> I’m working on a program that takes weather data and visualizes it using >> matplotlib and Basemap. I’m currently having an issue with matplotlib 1.4.3 >> for Python 3.4.3 running under Solaris 5.10. I am getting a Runtime Error >> whenever I try calling the read_png file from matplotlib._png. (I’m using >> this to add a small .png file of the Forest Service’s sheld to the >> picture). The error is the following: >> >> >> >> Traceback (most recent call last): >> >> File "drawmaps.py", line 845, in <module> >> >> arr_lena = read_png(fn) >> >> RuntimeError: Error closing dupe file handle >> >> >> >> I don’t quite understand the error I’m getting, and as you can see, the >> traceback gives very little information. I also tried Google for help, but >> to no avail; entering the error message as is into Google doesn’t return >> anything relating to the problem, and putting quotes around “Error closing >> dupe file handle” yields about 10 results, with one of them being an >> unanswered question from 2014 regarding the same issue. >> >> >> >> As per your request on the website, here’s what I get from uname –a: >> >> >> >> SunOS [server name withheld] 5.10 Generic_141444-09 sun4v sparc >> SUNW,SPARC-Enterprise-T5220 >> >> >> >> I built Python 3.4.3 from source and installed matplotlib through pip, >> and didn’t make any changes to the matplotlibrc file. >> >> >> >> I was able to reproduce the problem again running these commands in the >> Python interactive prompt, which emulates the snippet of script that causes >> the error: >> >> >> >> Python 3.4.3 (default, May 15 2015, 13:52:23) >> >> [GCC 4.9.2] on sunos5 >> >> Type "help", "copyright", "credits" or "license" for more information. >> >> >>> from matplotlib._png import read_png >> >> >>> from matplotlib.cbook import get_sample_data >> >> >>> import os; path=os.getcwd() >> >> >>> fn = get_sample_data(path + '/resources/shield.png', asfileobj=False) >> >> >>> arr_lena = read_png(fn) >> >> Traceback (most recent call last): >> >> File "<stdin>", line 1, in <module> >> >> RuntimeError: Error closing dupe file handle >> >> >> >> >> >> If you’d like a copy of the problem script, please let me know. Any and >> all help is greatly appreciated. >> >> >> >> Thank you in advance! >> >> >> >> -- BMW >> >> ------------------------------------------------------------------------------ >> One dashboard for servers and applications across Physical-Virtual-Cloud >> Widest out-of-the-box monitoring support with 50+ applications >> Performance metrics, stats and reports that give you Actionable Insights >> Deep dive visibility with transaction tracing using APM Insight. >> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> > |
From: Thomas C. <tca...@gm...> - 2015-05-28 13:55:05
|
I think there is on open bug about compilation failures on Solaris which we never sorted out due to not having access to a test machine. On Thu, May 28, 2015, 09:13 Bryan Williams <bry...@gm...> wrote: > Thanks to the both of you. > > First off, apologies for getting back to you several days late. I was out > of town for the holiday weekend, and I didn't get a chance to work on this > for the last two days as I had other business to tend to on Tuesday, and > was out of the office all day Wednesday. > > I tried to install from the master build on Github, and it seemed to run > fine, until I ended up with this error (and verbose details, text wall > incoming): > > > ============================================================================ > Edit setup.cfg to change the build options > > BUILDING MATPLOTLIB > matplotlib: yes [1.5.dev1] > python: yes [3.4.3 (default, May 15 2015, 13:52:23) [GCC > 4.9.2]] > platform: yes [sunos5] > > REQUIRED DEPENDENCIES AND EXTENSIONS > numpy: yes [version 1.9.2] > six: yes [using six version 1.9.0] > dateutil: yes [using dateutil version 2.4.2] > pytz: yes [using pytz version 2015.4] > tornado: yes [tornado was not found. It is required for the > WebAgg backend. pip/easy_install may attempt to > install it after matplotlib.] > pyparsing: yes [using pyparsing version 2.0.3] > libagg: yes [pkg-config information for 'libagg' could not > be found. Using local copy.] > freetype: yes [version 2.4.8] > png: yes [version 1.2.35] > qhull: yes [pkg-config information for 'qhull' could not > be > found. Using local copy.] > > OPTIONAL SUBPACKAGES > sample_data: yes [installing] > toolkits: yes [installing] > tests: yes [using nose version 1.3.6 / using > unittest.mock] > toolkits_tests: yes [using nose version 1.3.6 / using > unittest.mock] > > OPTIONAL BACKEND EXTENSIONS > macosx: no [Mac OS-X only] > qt5agg: no [PyQt5 not found] > qt4agg: no [PySide not found; PyQt4 not found] > gtk3agg: no [Requires pygobject to be installed.] > gtk3cairo: no [Requires cairocffi or pycairo to be > installed.] > gtkagg: no [Requires pygtk] > tkagg: yes [installing, version not identified] > wxagg: no [requires wxPython] > gtk: no [Requires pygtk] > agg: yes [installing] > cairo: no [cairocffi or pycairo not found] > windowing: no [Microsoft Windows only] > > OPTIONAL LATEX DEPENDENCIES > dvipng: no > ghostscript: no > latex: no > pdftops: no > > running build > running build_py > copying lib/matplotlib/mpl-data/matplotlibrc -> > build/lib.solaris-2.10-sun4v.32bit-3.4/matplotlib/mpl-data > running build_ext > building 'matplotlib.ft2font' extension > gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -fPIC > -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib_ft2font_ARRAY_API > -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION > -I/usr/local/lib/python3.4/site-packages/numpy/core/include > -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include > -I. -I/usr/local/include/python3.4m -c src/ft2font.cpp -o > build/temp.solaris-2.10-sun4v.32bit-3.4/src/ft2font.o > In file included from /usr/local/include/python3.4m/Python.h:8:0, > from src/mplutils.h:21, > from src/ft2font.cpp:8: > /usr/local/include/python3.4m/pyconfig.h:1387:0: warning: > "_FILE_OFFSET_BITS" redefined > #define _FILE_OFFSET_BITS 64 > ^ > In file included from > /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/include-fixed/wchar.h:20:0, > from /opt/csw/include/c++/4.9.2/cwchar:44, > from /opt/csw/include/c++/4.9.2/bits/postypes.h:40, > from /opt/csw/include/c++/4.9.2/bits/char_traits.h:40, > from /opt/csw/include/c++/4.9.2/string:40, > from src/ft2font.cpp:5: > /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/include-fixed/sys/feature_tests.h:196:0: > note: this is the location of the previous definition > #define _FILE_OFFSET_BITS 32 > ^ > gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -fPIC > -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib_ft2font_ARRAY_API > -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION > -I/usr/local/lib/python3.4/site-packages/numpy/core/include > -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include > -I. -I/usr/local/include/python3.4m -c src/ft2font_wrapper.cpp -o > build/temp.solaris-2.10-sun4v.32bit-3.4/src/ft2font_wrapper.o > In file included from /usr/local/include/python3.4m/Python.h:8:0, > from src/mplutils.h:21, > from src/ft2font_wrapper.cpp:1: > /usr/local/include/python3.4m/pyconfig.h:1387:0: warning: > "_FILE_OFFSET_BITS" redefined > #define _FILE_OFFSET_BITS 64 > ^ > In file included from /usr/include/sys/int_types.h:34:0, > from /usr/include/sys/stdint.h:17, > from /usr/include/stdint.h:17, > from > /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/include/stdint.h:9, > from src/mplutils.h:11, > from src/ft2font_wrapper.cpp:1: > /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/include-fixed/sys/feature_tests.h:196:0: > note: this is the location of the previous definition > #define _FILE_OFFSET_BITS 32 > ^ > In file included from /usr/local/include/python3.4m/Python.h:36:0, > from src/mplutils.h:21, > from src/ft2font_wrapper.cpp:1: > /usr/include/unistd.h:496:75: error: conflicting declaration of C function > 'void swab(const void*, void*, ssize_t)' > extern void swab(const void *_RESTRICT_KYWD, void *_RESTRICT_KYWD, > ssize_t); > > ^ > In file included from /usr/local/include/python3.4m/Python.h:34:0, > from src/mplutils.h:21, > from src/ft2font_wrapper.cpp:1: > /usr/include/stdlib.h:144:13: note: previous declaration 'void swab(const > char*, char*, ssize_t)' > extern void swab(const char *, char *, ssize_t); > ^ > error: command 'gcc' failed with exit status 1 > > > I have gcc on the box. I also installed the C compiler for Solaris (cc), > but I couldn't seem to find an option to switch it so that it uses cc > rather than gcc. > > Thanks again for all you do, and thanks for the help. > > -- BMW > > On Sun, May 24, 2015 at 2:05 PM, Thomas Caswell <tca...@gm...> > wrote: > >> Bryan, >> >> If you subscribe to the list you will be able to post with out moderation. >> >> Does this happen with any of the other sample data? >> >> I don't think that `get_sample_data` is doing you any good here as you >> are passing it an absolute path (from `os.getcwd()`) which is passed into >> `os.path.join` which when it encounters and absolute path discards >> everything to the left so that line is just returning back your input. >> >> Does it work to open any other png or does _only_ this png have issues? >> >> You are reaching into the nominally private parts of the mpl api here, I >> would suggest using `mpl.image.imread` instead. >> >> It might be worth using something like PIL/pillow, imread ( >> https://pypi.python.org/pypi/imread), imageio (https://imageio.github.io/) >> or scikit-image for alternate implementations of png readers. >> >> None of the core developers have access to a Solaris machine so it is >> very difficult for us to provide much better help on this. >> >> Tom >> >> On Sun, May 24, 2015 at 1:38 PM Bryan Williams < >> bry...@gm...> wrote: >> >>> Good afternoon, >>> >>> >>> >>> My name is Bryan Williams. I work for the Florida Forest Service in >>> their Forest Logistics and Support Bureau. >>> >>> >>> >>> I’m working on a program that takes weather data and visualizes it using >>> matplotlib and Basemap. I’m currently having an issue with matplotlib 1.4.3 >>> for Python 3.4.3 running under Solaris 5.10. I am getting a Runtime Error >>> whenever I try calling the read_png file from matplotlib._png. (I’m using >>> this to add a small .png file of the Forest Service’s sheld to the >>> picture). The error is the following: >>> >>> >>> >>> Traceback (most recent call last): >>> >>> File "drawmaps.py", line 845, in <module> >>> >>> arr_lena = read_png(fn) >>> >>> RuntimeError: Error closing dupe file handle >>> >>> >>> >>> I don’t quite understand the error I’m getting, and as you can see, the >>> traceback gives very little information. I also tried Google for help, but >>> to no avail; entering the error message as is into Google doesn’t return >>> anything relating to the problem, and putting quotes around “Error closing >>> dupe file handle” yields about 10 results, with one of them being an >>> unanswered question from 2014 regarding the same issue. >>> >>> >>> >>> As per your request on the website, here’s what I get from uname –a: >>> >>> >>> >>> SunOS [server name withheld] 5.10 Generic_141444-09 sun4v sparc >>> SUNW,SPARC-Enterprise-T5220 >>> >>> >>> >>> I built Python 3.4.3 from source and installed matplotlib through pip, >>> and didn’t make any changes to the matplotlibrc file. >>> >>> >>> >>> I was able to reproduce the problem again running these commands in the >>> Python interactive prompt, which emulates the snippet of script that causes >>> the error: >>> >>> >>> >>> Python 3.4.3 (default, May 15 2015, 13:52:23) >>> >>> [GCC 4.9.2] on sunos5 >>> >>> Type "help", "copyright", "credits" or "license" for more information. >>> >>> >>> from matplotlib._png import read_png >>> >>> >>> from matplotlib.cbook import get_sample_data >>> >>> >>> import os; path=os.getcwd() >>> >>> >>> fn = get_sample_data(path + '/resources/shield.png', asfileobj=False) >>> >>> >>> arr_lena = read_png(fn) >>> >>> Traceback (most recent call last): >>> >>> File "<stdin>", line 1, in <module> >>> >>> RuntimeError: Error closing dupe file handle >>> >>> >>> >>> >>> >>> If you’d like a copy of the problem script, please let me know. Any and >>> all help is greatly appreciated. >>> >>> >>> >>> Thank you in advance! >>> >>> >>> >>> -- BMW >>> >>> ------------------------------------------------------------------------------ >>> One dashboard for servers and applications across Physical-Virtual-Cloud >>> Widest out-of-the-box monitoring support with 50+ applications >>> Performance metrics, stats and reports that give you Actionable Insights >>> Deep dive visibility with transaction tracing using APM Insight. >>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Mat...@li... >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>> >> > |
From: Eric F. <ef...@ha...> - 2015-05-28 17:50:56
|
On 2015/05/28 3:13 AM, Bryan Williams wrote: > I have gcc on the box. I also installed the C compiler for Solaris (cc), > but I couldn't seem to find an option to switch it so that it uses cc > rather than gcc. Maybe you can do this with an environment variable? export CC=/usr/bin/cc It does look like there is a problem with scrambled environments. The redefinition warning looks potentially troublesome; and the error looks like a conflict between two versions of the standard C library. From "man swab" on Solaris: NAME swab - swap bytes SYNOPSIS #include <stdlib.h> void swab(const char *src, char *dest, ssize_t nbytes); XPG4, SUS, SUSv2, SUSv3 #include <unistd.h> void swab(const void *restrict src, void *restrict dest, ssize_t nbytes); I think you want the second version, consistently, but something is also hitting the first version. Maybe "XPG4" or one of the other 4 options needs to be defined when each library is compiled with /usr/bin/cc? I think the stdlib declaration is old; the unistd version is more modern. That's all very vague, I know. Obviously, I don't actually know how to solve the problem. Eric |
From: Bryan W. <bry...@gm...> - 2015-05-29 12:55:07
|
It seems like it is a conflict of libraries...I've zeroed in to these two errors: /usr/include/unistd.h:496:75: error: conflicting declaration of C function 'void swab(const void*, void*, ssize_t)' and /usr/include/stdlib.h:144:13: note: previous declaration 'void swab(const char*, char*, ssize_t)' I executed a find command and here's what came up: ~>sudo find / -name stdlib.h */opt/csw/include/c++/4.9.2/tr1/stdlib.h* /opt/solarisstudio12.4/lib/compilers/include/CC/gnu/stdlib.h /opt/solarisstudio12.4/lib/compilers/include/CC/stlport4/stdlib.h /opt/solarisstudio12.4/lib/compilers/CC-gcc/include/c++/4.8.2/tr1/stdlib.h */usr/include/stdlib.h* >From what it seems, it's calling stdlib.h from the /usr/include folder when it should be calling it from /opt/csw/include. I'm going to look into setup.cfg (that or perhaps hack setup.py) and see if it's at all possible to change it so that it looks in the right one, and then I'll try building it again. On Thu, May 28, 2015 at 1:50 PM, Eric Firing <ef...@ha...> wrote: > On 2015/05/28 3:13 AM, Bryan Williams wrote: > > I have gcc on the box. I also installed the C compiler for Solaris (cc), > > but I couldn't seem to find an option to switch it so that it uses cc > > rather than gcc. > > Maybe you can do this with an environment variable? > > export CC=/usr/bin/cc > > It does look like there is a problem with scrambled environments. The > redefinition warning looks potentially troublesome; and the error looks > like a conflict between two versions of the standard C library. > > From "man swab" on Solaris: > > NAME > swab - swap bytes > > SYNOPSIS > #include <stdlib.h> > > void swab(const char *src, char *dest, ssize_t nbytes); > > XPG4, SUS, SUSv2, SUSv3 > #include <unistd.h> > > void swab(const void *restrict src, void *restrict dest, > ssize_t nbytes); > > I think you want the second version, consistently, but something is also > hitting the first version. > > Maybe "XPG4" or one of the other 4 options needs to be defined when each > library is compiled with /usr/bin/cc? I think the stdlib declaration is > old; the unistd version is more modern. > > That's all very vague, I know. Obviously, I don't actually know how to > solve the problem. > > Eric > > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |