Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#45046 closed defect (fixed)

py27-wxpython-2.8: Missing "numeric" dependency in wxpython-2.8

Reported by: fhgwright (Fred Wright) Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: jyrkiwahlstedt
Port: py-wxpython-2.8

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Grass stopped working, apparently due to the numpy upgrade from 1.8 to 1.9. The error is:

  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wx-2.8-gtk2-unicode/wx/lib/plot.py", line 132, in <module>
    raise ImportError, "Numeric,numarray or NumPy not found. \n" + msg
   ...

The relevant code is:

# Needs Numeric or numarray or NumPy
try:
    import numpy.oldnumeric as _Numeric
except:
    try:
        import numarray as _Numeric  #if numarray is used it is renamed Numeric
    except:
        try:
            import Numeric as _Numeric
        except:
           ...

It appears that numpy was able to satisfy this until the numpy port was upgraded to 1.9, where "oldnumeric" had been removed. I was able to work around the problem by installing py27-numeric.

The wxpython-2.8 package doesn't list either numpy or numeric as dependencies, which may have led to the failure to discover the downside of upgrading the numpy port.

It appears that there was a fix in wxwidgets 3.0 to fix the compatibility problem with numpy 1.9, but the only variant of grass that claims to work (experimentally) with V3.0 doesn't actually work.

Change History (7)

comment:1 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: mojca@… added
Description: modified (diff)
Keywords: wxpython numpy numeric removed
Owner: changed from macports-tickets@… to jwa@…
Summary: Missing "numeric" dependency in wxpython-2.8py27-wxpython-2.8: Missing "numeric" dependency in wxpython-2.8

comment:2 Changed 10 years ago by mojca (Mojca Miklavec)

Cc: jwa@… added; mojca@… removed
Owner: changed from jwa@… to mojca@…
Version: 2.3.1

comment:3 Changed 10 years ago by mojca (Mojca Miklavec)

Port: py-wxpython-2.8 added; py27-wxpython-2.8 removed

Dependency added in r125512. Please let me know if that solves the problem. Grass should be upgraded to 7.0 anyway (see #44056).

comment:4 Changed 10 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: newclosed

comment:5 Changed 10 years ago by jmroot (Joshua Root)

We do have py-numarray BTW. It currently lacks a py27 subport but that’s easily fixed. Just mentioning it since the quoted code prefers numarray over Numeric.

comment:6 Changed 10 years ago by mojca (Mojca Miklavec)

It's not really clear to me which one it prefers. It's first trying to use the deprecated/removed library, then numarray which it calls _Numeric (making one think that Numeric might be the preferred one). To me it looks as if they tried to list packages in "reverse order" ;), but I don't want to claim anything (if numarray is present, that one would be used).

I also get a feeling that there are no users of py-numarray given that nobody cared enough to add support for py27 so far. I agree that it's trivial to add py27 to it, but maybe we could just as well remove that module altogether (if nobody misses it)?

comment:7 Changed 10 years ago by fhgwright (Fred Wright)

Curiouser and curiouser. I now see the dependency listed for this package, and I also see it listed as a recursive dependency for grass (provided that I specify the installed variants explicitly; it doesn't do that by default). But I'm able to uninstall py27-numeric without any errors regarding dependent ports, which of course breaks grass again until I reinstall it. That's probably not a bug in the port itself. :-)

BTW, I don't think this bug has anything to do with grass per se; it's just where I observed it. Though it's presumably limited to whatever subset of wxpython clients that uses plot.py.

Note: See TracTickets for help on using tickets.