Opened 13 years ago
Closed 10 years ago
#34146 closed defect (invalid)
Cython builds using numpy fail due to incorrectly placed headers
Reported by: | bgamari@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.4 |
Keywords: | Cc: | ||
Port: | py27-cython |
Description
Cython builds of code requiring numpy fail as cython invokes gcc with the command line,
/usr/bin/gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -pipe -O2 -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c photon_tools/bin_photons.c -o build/temp.macosx-10.6-x86_64-2.7/photon_tools/bin_photons.o
while the headers installed by the numpy package (e.g. arrayobject.h) are located in /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy. Creating a symlink as follows works around the issue,
$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 $ sudo ln -s ../../lib/python2.7/site-packages/numpy/core/include/numpy numpy
Change History (12)
comment:1 Changed 13 years ago by bgamari@…
Cc: | bgamari@… added |
---|
comment:2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ram@… added; bgamari@… removed |
---|---|
Owner: | changed from macports-tickets@… to dh@… |
comment:3 Changed 13 years ago by skymoo (Adam Mercer)
Isn't this a problem with the software you're trying to build? i.e. it's not using the correct location for the numpy headers...
comment:4 Changed 13 years ago by bgamari@…
No, the software being built uses distutils, the recommended way to build Cython code, which should take care of these platform specific details. This means, however, that this might be a problem not in numpy but in the Cython packaging.
comment:5 Changed 13 years ago by skymoo (Adam Mercer)
The problem is not with NumPy as it correctly returns the correct path for it's headers when queried:
$ python Python 2.7.3 (default, Apr 19 2012, 22:23:11) [GCC 4.2.1 Compatible Apple Clang 3.1 (tags/Apple/clang-318.0.58)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from numpy.lib.utils import get_include >>> get_include() '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include' >>>
I imagine the software you're building, or CPython, isn't correctly querying NumPy where it's headers are located.
comment:6 Changed 13 years ago by bgamari@…
As I said previously, the package uses distutils to build the Cython code. Given that numpy correctly reports its header locations, it seems that the problem in this case is in the cython port. The "port" field of this ticket should be updated accordingly.
comment:7 Changed 13 years ago by skymoo (Adam Mercer)
Port: | py27-cython added |
---|
comment:8 Changed 12 years ago by jmroot (Joshua Root)
Cc: | akitada@… added |
---|
comment:9 Changed 12 years ago by skymoo (Adam Mercer)
Cc: | akitada@… ram@… removed |
---|---|
Owner: | changed from dh@… to akitada@… |
Port: | py27-numpy removed |
comment:10 Changed 10 years ago by mf2k (Frank Schima)
Owner: | changed from akitada@… to macports-tickets@… |
---|
This port is no longer maintained. See #43692.
Is this still relevant?
comment:11 Changed 10 years ago by david.e.pi.3.14@…
It still relevant and the solution proposed by bgamari@… still works
comment:12 Changed 10 years ago by seanfarley (Sean Farley)
Resolution: | → invalid |
---|---|
Status: | new → closed |
Ok, so it turns out that cython did have a problem with ignoring include paths sent to cythonize. I just tested that using Extensions works. Closing this as invalid since it was an upstream bug.
Cc Me!