pythonpiphunspell

pip install hunspell: Cannot open include file: 'hunspell.h': No such file or directory


I'm trying to pip install hunspell on my windows 10 x64 machine, but I get the following error:

C:\Users\a>pip install hunspell
Collecting hunspell
  Using cached hunspell-0.3.3.tar.gz
Installing collected packages: hunspell
  Running setup.py install for hunspell ... error
    Complete output from command c:\users\a\appdata\local\programs\python\python35-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\a\\AppData\\Local\\Temp\\pip-build-lmrkbjce\\hunspell\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\a\AppData\Local\Temp\pip-6k6fow3d-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_ext
    building 'hunspell' extension
    creating build
    creating build\temp.win32-3.5
    creating build\temp.win32-3.5\Release
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -D_LINUX -I/usr/include/hunspell -Ic:\users\a\appdata\local\programs\python\python35-32\include -Ic:\users\a\appdata\local\programs\python\python35-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" /Tchunspell.c /Fobuild\temp.win32-3.5\Release\hunspell.obj -Wall
    hunspell.c
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\corecrt_io.h(49): warning C4820: '_finddata32i64_t': '4' bytes padding added after data member 'name'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\corecrt_io.h(54): warning C4820: '_finddata64i32_t': '4' bytes padding added after data member 'attrib'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\corecrt_io.h(64): warning C4820: '__finddata64_t': '4' bytes padding added after data member 'attrib'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\corecrt_io.h(69): warning C4820: '__finddata64_t': '4' bytes padding added after data member 'name'
    C:\Program Files (x86)\Windows Kits\8.1\include\\shared\basetsd.h(418): warning C4668: '_WIN32_WINNT' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\time.h(35): warning C4820: '_timespec64': '4' bytes padding added after data member 'tv_nsec'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\time.h(42): warning C4820: 'timespec': '4' bytes padding added after data member 'tv_nsec'
    c:\users\a\appdata\local\programs\python\python35-32\include\pytime.h(112): warning C4115: 'timeval': named type definition in parentheses
    c:\users\a\appdata\local\programs\python\python35-32\include\pytime.h(160): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'adjustable'
    c:\users\a\appdata\local\programs\python\python35-32\include\bytesobject.h(41): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'ob_sval'
    c:\users\a\appdata\local\programs\python\python35-32\include\unicodeobject.h(917): warning C4820: '<unnamed-tag>': '2' bytes padding added after data member 'readonly'
    c:\users\a\appdata\local\programs\python\python35-32\include\longintrepr.h(92): warning C4820: '_longobject': '2' bytes padding added after data member 'ob_digit'
    c:\users\a\appdata\local\programs\python\python35-32\include\pystate.h(85): warning C4820: '_ts': '2' bytes padding added after data member 'recursion_critical'
    c:\users\a\appdata\local\programs\python\python35-32\include\genobject.h(32): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'gi_running'
    c:\users\a\appdata\local\programs\python\python35-32\include\genobject.h(50): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'cr_running'
    c:\users\a\appdata\local\programs\python\python35-32\include\pyerrors.h(18): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'suppress_context'
    c:\users\a\appdata\local\programs\python\python35-32\include\pyerrors.h(22): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'suppress_context'
    c:\users\a\appdata\local\programs\python\python35-32\include\pyerrors.h(32): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'suppress_context'
    c:\users\a\appdata\local\programs\python\python35-32\include\pyerrors.h(39): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'suppress_context'
    c:\users\a\appdata\local\programs\python\python35-32\include\pyerrors.h(48): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'suppress_context'
    c:\users\a\appdata\local\programs\python\python35-32\include\pyerrors.h(53): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'suppress_context'
    c:\users\a\appdata\local\programs\python\python35-32\include\pyerrors.h(65): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'suppress_context'
    c:\users\a\appdata\local\programs\python\python35-32\include\pylifecycle.h(62): warning C4255: '_Py_CheckPython3': no function prototype given: converting '()' to '(void)'
    c:\users\a\appdata\local\programs\python\python35-32\include\fileutils.h(23): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_dev'
    c:\users\a\appdata\local\programs\python\python35-32\include\fileutils.h(25): warning C4820: '_Py_stat_struct': '2' bytes padding added after data member 'st_mode'
    c:\users\a\appdata\local\programs\python\python35-32\include\fileutils.h(29): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_rdev'
    c:\users\a\appdata\local\programs\python\python35-32\include\fileutils.h(32): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_atime_nsec'
    c:\users\a\appdata\local\programs\python\python35-32\include\fileutils.h(34): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_mtime_nsec'
    hunspell.c(21): fatal error C1083: Cannot open include file: 'hunspell.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2

    ----------------------------------------
Command "c:\users\a\appdata\local\programs\python\python35-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\a\\AppData\\Local\\Temp\\pip-build-lmrkbjce\\hunspell\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\a\AppData\Local\Temp\pip-6k6fow3d-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\a\AppData\Local\Temp\pip-build-lmrkbjce\hunspell

C:\Users\a>

It seems that the installer is trying to reach a file named "hunspell.h" which can not be found.

I tried to put the file I found at dxr.mozilla.org in "C:\Users\a\AppData\Local\Programs\Python\Python35-32\include". Then I got a similar error about hunvisapi.h. Created that, too. Now I'm getting LINK : fatal error LNK1181: cannot open input file 'hunspell.lib'. I don't know where I can find this one yet; but there must be an easier way to do all this.

In short, how can I install hunspell without getting the errors above?


Solution

  • Your problem is that pyhunspell is a binding to the C (coded using C Python API) hunspell library, thus it needs to compile. To compile it needs to have hunspell installed and access to hunspell header files of the core hunspell program.

    The part with the header files you managed to tweak it but you need hunspell installed on your computer. For that see here or here.

    Once it's done you can retry pip install or you can try precompiled package there is only one available but it might work (see http://pyhunspell.latinier.fr/)

    Hope it helps.