Cygwin gcc issue – cannot find Python.h
Question:
So I downloaded Cygwin to build Matplotlib on Windows. Upon running
python setup.py build
I get a message saying Python.h cannot be found (pastebin).
Looking in /usr/include/python2.7, I can clearly see Python.h exists.
When I do:
gcc -print-search-dirs
I get paths to some Haskell folder outside of the cygwin installation folder. Full output here.
Answers:
This looks similar to the following discussion on ubuntu forums:
http://ubuntuforums.org/archive/index.php/t-2136273.html
one of the solutions is to “sudo apt-get build-dep python-matplotlib”, while other solution is to check whether you are compiling with correct python. Python 2 uses MPL < 1.2 and python 3 MPL >= 1.2.
I realize your question is old but I stumbled upon the exact same problem and found the solution so I thought I would share it. You probably have another gcc installed outside of cygwin, in my case it was a mingw-tdm native windows gcc variant. It happened to be in the path before the actual cygwin gcc, and was therefore picked up by the python installer.
To solve the problem, you only need to locate (or install) the cygwin gcc you need (either 32 or 64-bit), and do
export CC=/path/to/correct/gcc/exe
for instance
export CC=/usr/bin/x86_64-pc-cygwin-gcc
in cygwin make sure the python-devel package is installed:
- Run the cygwin installer (setup-x86(_64).exe
- Click through until you get to the page to install packages
- install the “python-devel” package from the “python” section. [Update from Comments] It is available as python2-devel or python3-devel under Python section for some.
So I downloaded Cygwin to build Matplotlib on Windows. Upon running
python setup.py build
I get a message saying Python.h cannot be found (pastebin).
Looking in /usr/include/python2.7, I can clearly see Python.h exists.
When I do:
gcc -print-search-dirs
I get paths to some Haskell folder outside of the cygwin installation folder. Full output here.
This looks similar to the following discussion on ubuntu forums:
http://ubuntuforums.org/archive/index.php/t-2136273.html
one of the solutions is to “sudo apt-get build-dep python-matplotlib”, while other solution is to check whether you are compiling with correct python. Python 2 uses MPL < 1.2 and python 3 MPL >= 1.2.
I realize your question is old but I stumbled upon the exact same problem and found the solution so I thought I would share it. You probably have another gcc installed outside of cygwin, in my case it was a mingw-tdm native windows gcc variant. It happened to be in the path before the actual cygwin gcc, and was therefore picked up by the python installer.
To solve the problem, you only need to locate (or install) the cygwin gcc you need (either 32 or 64-bit), and do
export CC=/path/to/correct/gcc/exe
for instance
export CC=/usr/bin/x86_64-pc-cygwin-gcc
in cygwin make sure the python-devel package is installed:
- Run the cygwin installer (setup-x86(_64).exe
- Click through until you get to the page to install packages
- install the “python-devel” package from the “python” section. [Update from Comments] It is available as python2-devel or python3-devel under Python section for some.