weixin_39866857
2021-01-03 08:35 阅读 4

Problem with pip install on MacOS

I'm using MacOS Sierra and after run brew install hunspell and `pip install hunspell' I'm getting:


Collecting hunspell
  Downloading hunspell-0.5.0.tar.gz
Installing collected packages: hunspell
  Running setup.py install for hunspell ... error
    Complete output from command /Users/thiago/anaconda3/envs/fastAi/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-B4z1YA/hunspell/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-20OFcH-record/install-record.txt --single-version-externally-managed --compile:
    /Users/thiago/anaconda3/envs/fastAi/lib/python2.7/distutils/extension.py:133: UserWarning: Unknown Extension options: 'compile_args', 'macros'
      warnings.warn(msg)
    running install
    running build
    running build_ext
    building 'hunspell' extension
    creating build
    creating build/temp.macosx-10.7-x86_64-2.7
    gcc -fno-strict-aliasing -I/Users/thiago/anaconda3/envs/fastAi/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/include/hunspell -I/Users/thiago/anaconda3/envs/fastAi/include/python2.7 -c hunspell.cpp -o build/temp.macosx-10.7-x86_64-2.7/hunspell.o
    hunspell.cpp:20:10: fatal error: 'hunspell.hxx' file not found
    #include <hunspell.hxx>
             ^
    1 error generated.
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/Users/thiago/anaconda3/envs/fastAi/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-B4z1YA/hunspell/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-20OFcH-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-B4z1YA/hunspell/
</hunspell.hxx>

I also run ln -s /usr/local/lib/libhunspell-1.6.a /usr/local/lib/libhunspell.a but it didn't help.

该提问来源于开源项目:blatinier/pyhunspell

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

34条回答 默认 最新

  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    Could you try the given solution in that ticket: #26 (the last comment) It's something I should update in the doc, but I didn't had time yet.

    点赞 评论 复制链接分享
  • weixin_39866857 weixin_39866857 2021-01-03 08:35

    Thanks! It seems to work but when I import it on python cli it shows this message:

    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: dlopen(/Users/thiago/anaconda3/envs/fastAi/lib/python2.7/site-packages/hunspell.so, 2): Symbol not found: __ZN8Hunspell14add_with_affixERKSsS1_
      Referenced from: /Users/thiago/anaconda3/envs/fastAi/lib/python2.7/site-packages/hunspell.so
      Expected in: flat namespace
     in /Users/thiago/anaconda3/envs/fastAi/lib/python2.7/site-packages/hunspell.so
    </module></stdin>

    I'm using Python 2.7 not 3.

    点赞 评论 复制链接分享
  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    That's a completly new error to me… :( Apparently you have installed hunspell since installation worked and it does find the .so but it does not find the add_with_affix method… I don't find similar errors on the internet and I don't own any mac…

    Are you stuck to python2 due to an integration to a project or can you move forward to python3? It's the perfect time! :)

    I flag the issue with "help-needed" label but I cannot do much more for now. If you have a way to reproduce this on a linux I'm up to it.

    点赞 评论 复制链接分享
  • weixin_39866857 weixin_39866857 2021-01-03 08:35

    Same error with Python 3:

    
    Python 3.6.1 |Anaconda 4.4.0 (x86_64)| (default, May 11 2017, 13:04:09) 
    [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import hunspell
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: dlopen(/Users/thiago/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so, 2): Symbol not found: __ZN8Hunspell14add_with_affixERKSsS1_
      Referenced from: /Users/thiago/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so
      Expected in: flat namespace
     in /Users/thiago/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so
    </module></stdin>
    点赞 评论 复制链接分享
  • weixin_39915171 weixin_39915171 2021-01-03 08:35

    Hello,

    I just managed to install pyhunspell on a clean macOS High Sierra by following these steps:

    installed homebrew installed python (in my case python2) from homebrew (brew install python)

    update user path (make sure to be using pip and python from the home brew installation)

    brew install hunspell (currently on version 1.6.2, so, adjusting the linking found on comment #26:)

    ln -s /usr/local/Cellar/hunspell/1.6.2/lib/libhunspell-1.6.0.dylib /usr/local/Cellar/hunspell/1.6.2/lib/libhunspell.dylib

    CFLAGS=$(pkg-config --cflags hunspell) LDFLAGS=$(pkg-config --libs hunspell) pip install hunspell

    -> no problem using hunspell

    点赞 评论 复制链接分享
  • weixin_39907131 weixin_39907131 2021-01-03 08:35

    Hi,

    This particular solution didn't work for me on Sierra I needed to modify the setup.py file with the mentioned flags.

    I followed the same steps, installed homebrew, python, and hunspell then adjusted the linking with:

    ln -s /usr/local/Cellar/hunspell/1.6.2/lib/libhunspell-1.6.0.dylib /usr/local/Cellar/hunspell/1.6.2/lib/libhunspell.dylib

    After I cloned this repository I edited this part of the setup.py file like this:

    
    else:
        main_module_kwargs['macros'] = [('_LINUX', None)]
        main_module_kwargs['libraries'] = ['hunspell']
        main_module_kwargs['include_dirs'] = '/usr/local/Cellar/hunspell/1.6.2/include/hunspell/',
        main_module_kwargs['compile_args'] = ['-Wall']
        cmd = ['./configure', '--disable-dependency-tracking', '--without-python', '--with-x=no', 'CFLAGS=$(pkg-config --cflags hunspell)','LDFLAGS=$(pkg-config --libs hunspell)' ]
    
    

    Running this with python setup.py install solved the problem.

    点赞 评论 复制链接分享
  • weixin_39782709 weixin_39782709 2021-01-03 08:35

    I have the same problem as - "Expected in: flat namespace". Any solution to that?

    点赞 评论 复制链接分享
  • weixin_39850331 weixin_39850331 2021-01-03 08:35

    I get the same input error as and -blank. Is there any other way to resolve this issue?

    点赞 评论 复制链接分享
  • weixin_39927214 weixin_39927214 2021-01-03 08:35

    I'm experiencing the same problem, thiagolcks, kosta-blank and LittleEntertainer :)

    点赞 评论 复制链接分享
  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    Still no mean for me to dig into that. (No Mac near me, and not happening in the near future I'm afraid) -blank did you tried the solutions provided by and ? New errors? Working?

    If anyone is finding a way to overcome this issue please comment here.

    点赞 评论 复制链接分享
  • weixin_39796878 weixin_39796878 2021-01-03 08:35

    Hello et al.! So I tried solutions by (partially, because I am using conda python3) and but to no success :(

    Here's the output of a "successful" installation (on macOS High Sierra) via python setup.py install:

    python
    running install
    running build
    running build_ext
    building 'hunspell' extension
    creating build
    creating build/temp.macosx-10.7-x86_64-3.6
    gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/mpopov/anaconda3/include -arch x86_64 -I/Users/mpopov/anaconda3/include -arch x86_64 -I/usr/local/Cellar/hunspell/1.6.2/include/hunspell/ -I/Users/mpopov/anaconda3/include/python3.6m -c hunspell.cpp -o build/temp.macosx-10.7-x86_64-3.6/hunspell.o
    hunspell.cpp:144:30: warning: 'spell' is deprecated [-Wdeprecated-declarations]
        retvalue = self->handle->spell(word);
                                 ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:131:3: note: 'spell' has been explicitly marked deprecated here
      H_DEPRECATED int spell(const char* word, int* info = NULL, char** root = NULL);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:164:31: warning: 'suggest' is deprecated [-Wdeprecated-declarations]
        num_slist = self->handle->suggest(&slist, word);
                                  ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:141:3: note: 'suggest' has been explicitly marked deprecated here
      H_DEPRECATED int suggest(char*** slst, const char* word);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:175:19: warning: 'free_list' is deprecated [-Wdeprecated-declarations]
        self->handle->free_list(&slist, num_slist);
                      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:155:3: note: 'free_list' has been explicitly marked deprecated here
      H_DEPRECATED void free_list(char*** slst, int n);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:193:31: warning: 'analyze' is deprecated [-Wdeprecated-declarations]
        num_slist = self->handle->analyze(&slist, word);
                                  ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:164:3: note: 'analyze' has been explicitly marked deprecated here
      H_DEPRECATED int analyze(char*** slst, const char* word);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:204:19: warning: 'free_list' is deprecated [-Wdeprecated-declarations]
        self->handle->free_list(&slist, num_slist);
                      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:155:3: note: 'free_list' has been explicitly marked deprecated here
      H_DEPRECATED void free_list(char*** slst, int n);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:222:31: warning: 'stem' is deprecated [-Wdeprecated-declarations]
        num_slist = self->handle->stem(&slist, word);
                                  ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:168:3: note: 'stem' has been explicitly marked deprecated here
      H_DEPRECATED int stem(char*** slst, const char* word);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:233:19: warning: 'free_list' is deprecated [-Wdeprecated-declarations]
        self->handle->free_list(&slist, num_slist);
                      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:155:3: note: 'free_list' has been explicitly marked deprecated here
      H_DEPRECATED void free_list(char*** slst, int n);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:251:31: warning: 'generate' is deprecated [-Wdeprecated-declarations]
        num_slist = self->handle->generate(&slist, word1, word2);
                                  ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:181:3: note: 'generate' has been explicitly marked deprecated here
      H_DEPRECATED int generate(char*** slst, const char* word, const char* word2);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:263:19: warning: 'free_list' is deprecated [-Wdeprecated-declarations]
        self->handle->free_list(&slist, num_slist);
                      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:155:3: note: 'free_list' has been explicitly marked deprecated here
      H_DEPRECATED void free_list(char*** slst, int n);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:282:31: warning: 'generate' is deprecated [-Wdeprecated-declarations]
        num_slist = self->handle->generate(&slist, word1, &desc, 1);
                                  ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:191:3: note: 'generate' has been explicitly marked deprecated here
      H_DEPRECATED int generate(char*** slst, const char* word, char** desc, int n);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    hunspell.cpp:294:19: warning: 'free_list' is deprecated [-Wdeprecated-declarations]
        self->handle->free_list(&slist, num_slist);
                      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:155:3: note: 'free_list' has been explicitly marked deprecated here
      H_DEPRECATED void free_list(char*** slst, int n);
      ^
    /usr/local/Cellar/hunspell/1.6.2/include/hunspell/hunspell.hxx:89:39: note: expanded from macro 'H_DEPRECATED'
    #  define H_DEPRECATED __attribute__((__deprecated__))
                                          ^
    11 warnings generated.
    creating build/lib.macosx-10.7-x86_64-3.6
    g++ -bundle -undefined dynamic_lookup -L/Users/mpopov/anaconda3/lib -arch x86_64 -L/Users/mpopov/anaconda3/lib -arch x86_64 -arch x86_64 build/temp.macosx-10.7-x86_64-3.6/hunspell.o -lhunspell -o build/lib.macosx-10.7-x86_64-3.6/hunspell.cpython-36m-darwin.so
    clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
    running install_lib
    copying build/lib.macosx-10.7-x86_64-3.6/hunspell.cpython-36m-darwin.so -> /Users/mpopov/anaconda3/lib/python3.6/site-packages
    running install_egg_info
    Writing /Users/mpopov/anaconda3/lib/python3.6/site-packages/hunspell-0.5.0-py3.6.egg-info
    

    When I try to import hunspell I get the following:

    python
    import hunspell
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: dlopen(/Users/mpopov/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so, 2): Symbol not found: __ZN8Hunspell14add_with_affixERKSsS1_
      Referenced from: /Users/mpopov/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so
      Expected in: flat namespace
     in /Users/mpopov/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so
    </module></stdin>

    My hunspell library looks like this:

    bash
    $ echo $(pkg-config --cflags hunspell)
    # -I/usr/local/Cellar/hunspell/1.6.2/include/hunspell
    $ ls /usr/local/Cellar/hunspell/1.6.2/include/hunspell
    # atypes.hxx    csutil.hxx  htypes.hxx  hunspell.h  hunspell.hxx    hunvisapi.h w_char.hxx
    $ echo $(pkg-config --libs hunspell)
    # -L/usr/local/Cellar/hunspell/1.6.2/lib -lhunspell-1.6
    $ ls /usr/local/Cellar/hunspell/1.6.2/lib
    # libhunspell-1.6.0.dylib   libhunspell-1.6.a   libhunspell-1.6.dylib   libhunspell.a       libhunspell.dylib   pkgconfig
    

    Here's additional information if it could be useful:

    
    $ python
    Python 3.6.3 |Anaconda custom (64-bit)| (default, Dec  5 2017, 17:30:25) 
    [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    
    点赞 评论 复制链接分享
  • weixin_40006133 weixin_40006133 2021-01-03 08:35

    In the hope this is helpful, here are the commands through which I was able to successfully compile and run pyhunspell on OS X.

    Environment: OS X 10.11.6 Python 3.6.4 (installed via brew) Hunspell 1.6.2 (installed via brew)

    
    ln -s /usr/local/lib/libhunspell-1.6.2.a /usr/local/lib/libhunspell.a
    ln -s /usr/local/Cellar/hunspell/1.6.2/lib/libhunspell-1.6.0.dylib /usr/local/Cellar/hunspell/1.6.2/lib/libhunspell.dylib
    CFLAGS=$(pkg-config --cflags hunspell) LDFLAGS=$(pkg-config --libs hunspell) pip3 install hunspell
    

    After successful creation of pyhunspell, run brew prune as suggested by brew doctor

    Testing that it works:

    
    Python 3.6.4 (default, Jan  6 2018, 11:49:38) 
    [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
    Type "copyright", "credits" or "license()" for more information.
    >>> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
    Visit http://www.python.org/download/mac/tcltk/ for current information.
    
    import hunspell
    >>> hobj = hunspell.HunSpell('/Users/Guy/Library/Spelling/en_GB.dic', '/Users/Guy/Library/Spelling/en_GB.aff')
    
    >>> print(hobj.spell('Python'))
    
    True
    
    点赞 评论 复制链接分享
  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    Ok anymore positive output for this? -blank ?

    点赞 评论 复制链接分享
  • weixin_39796878 weixin_39796878 2021-01-03 08:35

    Nope :( I tried replicating 's steps but I'm still getting an error when trying to load pyhunspell:

    
    $ brew install hunspell
    ==> Installing hunspell
    ==> Downloading https://homebrew.bintray.com/bottles/hunspell-1.6.2.sierra.bottle.tar.gz
    ######################################################################## 100.0%
    ==> Pouring hunspell-1.6.2.sierra.bottle.tar.gz
    ==> Summary
    🍺  /usr/local/Cellar/hunspell/1.6.2: 852 files, 1.9MB
    
    
    $ pip --version
    pip 9.0.1 from /Users/mikhail/anaconda3/lib/python3.6/site-packages (python 3.6)
    
    
    $ CFLAGS=$(pkg-config --cflags hunspell) LDFLAGS=$(pkg-config --libs hunspell) pip install hunspell
    Collecting hunspell
      Downloading hunspell-0.5.0.tar.gz
    Building wheels for collected packages: hunspell
      Running setup.py bdist_wheel for hunspell ... done
      Stored in directory: /Users/mikhail/Library/Caches/pip/wheels/b3/93/a1/e2b38a49e150a83e070e7abe08d33212fa417ff11d76309f79
    Successfully built hunspell
    Installing collected packages: hunspell
    Successfully installed hunspell-0.5.0
    
    
    $ python3
    Python 3.6.4 |Anaconda custom (64-bit)| (default, Jan 16 2018, 12:04:33) 
    [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import hunspell
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: dlopen(/Users/mikhail/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so, 2): Symbol not found: __ZN8Hunspell14add_with_affixERKSsS1_
      Referenced from: /Users/mikhail/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so
      Expected in: flat namespace
     in /Users/mikhail/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so
    </module></stdin>

    Environment: - macOS 10.12.6 with Xcode 9.2 - Python 3.6.4 installed via Anaconda

    点赞 评论 复制链接分享
  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    Did you create the links suggested (the ln -s commands)? And the post install brew commands?

    点赞 评论 复制链接分享
  • weixin_39796878 weixin_39796878 2021-01-03 08:35

    Yup! Sorry, I forgot to include that I created the symbolic links too. I think I ran the post install brew command at some point but I'll try again in the exact order.

    点赞 评论 复制链接分享
  • weixin_39843677 weixin_39843677 2021-01-03 08:35

    I hit the same issue. I noticed this in the clang command -I/usr/include/hunspell and also that this directory doesn't exist and now /usr/include is on a read only file system. so i cloned this repo and edited install.py to add my hunspell install area to the include dirs:

    
        main_module_kwargs['include_dirs'] = '/usr/local/Cellar/hunspell/1.6.2/include/hunspell','/usr/local/include'
    

    after this, hunspell seemed to work:

    
    >>> import hunspell
    >>> hobj = hunspell.HunSpell('/Library/Spelling/en_US.dic', '/Library/Spelling/en_US.aff')
    >>> hobj.suggest('pyton')
    ['python', 'piton', 'pylon', 'Python']
    
    点赞 评论 复制链接分享
  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    Ok could some of you try to pip install using the issue33/MacOS-install branch?

    点赞 评论 复制链接分享
  • weixin_39843677 weixin_39843677 2021-01-03 08:35

    works for me. it might be nice to also check some environment variable for the hunspell directory (C_INCLUDE_PATH?) in case someone has a different version (and mention it in the mac install notes.

    点赞 评论 复制链接分享
  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    Ok it's merged in the master branch. I will publish on pypi soon.

    点赞 评论 复制链接分享
  • weixin_39641386 weixin_39641386 2021-01-03 08:35

    Hi, does any one have any updates on the issue about the error:

    Symbol not found: __ZN8Hunspell14add_with_affixERKSsS1_

    I have tried to get over this error by checking different versions of the hunspell library, installing with pip, and also compiling hte cloned repository myself ... but I was not able to get rid of the error.

    点赞 评论 复制链接分享
  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    pypi version was updated regarding this issue at the end of january. You still encounter this problem?

    If yes could you indicate your python version, macos version, hunspell version et full stacktraces?

    点赞 评论 复制链接分享
  • weixin_39641386 weixin_39641386 2021-01-03 08:35

    Thanks, I get the problem with the following system: Mac Os: 10.13.4 Python: 3.6.4 (Anaconda) Hunspell: I have tried with 1.6.2., 1.3.4, and 1.4.1, currently installed version is 1.4.1

    @(#) International Ispell Version 3.2.06 (but really Hunspell 1.4.0)

    Compilation from the downloaded code works fine after correcting some links and updating main_module_kwargs['include_dirs'], though it generated some warnings.

    Importing hunspell in ipython gives the following error:

    ImportError: dlopen(/Users/jarenas/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so, 2): Symbol not found: __ZN8Hunspell14add_with_affixERKSsS1_
    Referenced from: /Users/jarenas/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so
    Expected in: flat namespace
      in /Users/jarenas/anaconda3/lib/python3.6/site-packages/hunspell.cpython-36m-darwin.so
    
    点赞 评论 复制链接分享
  • weixin_39795116 weixin_39795116 2021-01-03 08:35

    I reopen the subject then, but I still don't own a Mac so troubleshooting this is not possible for me...

    点赞 评论 复制链接分享
  • weixin_39845406 weixin_39845406 2021-01-03 08:35

    I have been facing the same error since the past week. And I finally found a hack that worked for me.

    My initial system config was: Mac Os: 10.13.4 Python: 3.6.5 (miniconda) Hunspell: 1.6.2 (brew)

    I tried all suggestions as mentioned in this thread, but they did not work. Clearly the .so file being generated while pip installing hunspell, was buggy. A colleague of mine, who wasn't using miniconda/anaconda, was able to import hunspell without issues following the install instructions mentioned in the above comments.

    I decided to inspect the correct and the buggy .so file for clues. So I used otool -l on both individually and compared the outputs.

    Buggy file had:

    
             name /libstdc++.6.dylib (offset 24)
       time stamp 2 Wed Dec 31 16:00:02 1969
          current version 7.19.0
    compatibility version 7.0.0
    Load command 9
              cmd LC_LOAD_DYLIB
          cmdsize 56
             name /usr/lib/libSystem.B.dylib (offset 24)
       time stamp 2 Wed Dec 31 16:00:02 1969
          current version 1252.50.4
    compatibility version 1.0.0
    Load command 10
              cmd LC_LOAD_DYLIB
          cmdsize 80
             name /Users/sgosukonda/miniconda3/lib/libgcc_s.1.dylib (offset 24)
       time stamp 2 Wed Dec 31 16:00:02 1969
          current version 1.0.0
    compatibility version 1.0.0
    

    Correct file had:

    
             name /usr/lib/libc++.1.dylib (offset 24)
       time stamp 2 Wed Dec 31 16:00:02 1969
          current version 400.9.0
    compatibility version 1.0.0
    Load command 10
              cmd LC_LOAD_DYLIB
          cmdsize 56
             name /usr/lib/libSystem.B.dylib (offset 24)
       time stamp 2 Wed Dec 31 16:00:02 1969
          current version 1252.50.4
    compatibility version 1.0.0
    

    The difference - correct .so file uses libc++.1.dylib while loading.

    I removed miniconda and used brew installed python. That still did not solve the problem.

    So finally, I cloned the pyhunspell repo and ran python setup.py develop and that generated the .so file in the path pyhunspell/build/lib.macosx-10.13-x86_64-3.6/hunspell.cpython-36m-darwin.so

    This file had the same contents as the correct .so file and I replaced the buggy one with this. import hunspell success. (phew)

    Like I mentioned before this is clearly a hack - if anyone can shed more light on how to ensure the .so file generated in a pip install should have libc++.1.dylib as the linked loader - I would much appreciate it.

    点赞 评论 复制链接分享
  • weixin_39518678 weixin_39518678 2021-01-03 08:35

    I see why this solution should work, but I can't build a copy of the .so that references libc++.1.dylib instead of libstdc++.6.dylib. Could you share your file? It happens that my system config is nearly the same as yours.

    点赞 评论 复制链接分享
  • weixin_39845406 weixin_39845406 2021-01-03 08:35

    Here's a dropbox link : https://www.dropbox.com/s/7p0tynwdgchhwcj/hunspell.cpython-36m-darwin.so?dl=0

    点赞 评论 复制链接分享
  • weixin_39904809 weixin_39904809 2021-01-03 08:35

    I followed all the instructions that provided, but still had an error. Then I tried what recommended and got this error:

    
    creating build/lib.macosx-10.14-intel-2.7
    c++ -bundle -undefined dynamic_lookup -Wl,-F. build/temp.macosx-10.14-intel-2.7/hunspell.o -lhunspell -o build/lib.macosx-10.14-intel-2.7/hunspell.so
    ld: library not found for -lhunspell
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    error: command 'c++' failed with exit status 1
    

    It looks like it can't create the .so file that I need - and neither can I. These are the list of files I have:

    
    libstdc++.6.0.9.dylib
    libstdc++.6.dylib
    libstdc++.dylib
    

    Can anyone tell me how to manually create the .so file or any other advice? Thank you!

    点赞 评论 复制链接分享
  • weixin_39845406 weixin_39845406 2021-01-03 08:35

    I can't remember now if I ran a different command from python setup.py develop to generate the .so file. I have been using CyHunspell and it install with no errors: https://github.com/MSeal/cython_hunspell

    点赞 评论 复制链接分享
  • weixin_39946274 weixin_39946274 2021-01-03 08:35

    As suggested I managed to install pyhunspell 0.5.5 from the latest version Hunspell (1.7.0) on Python 3.7.3 by running these commands:

    
    ln -s /usr/local/lib/libhunspell-1.7.a /usr/local/lib/libhunspell.a
    ln -s /usr/local/Cellar/hunspell/1.7.0_2/lib/libhunspell-1.7.dylib /usr/local/Cellar/hunspell/1.7.0_2/lib/libhunspell.dylib
    CFLAGS=$(pkg-config --cflags hunspell) LDFLAGS=$(pkg-config --libs hunspell) pip3 install hunspell
    

    Hope this helps.

    点赞 评论 复制链接分享
  • weixin_39945445 weixin_39945445 2021-01-03 08:35

    , these instructions failed with:

    
    ...
        In file included from hunspell.cpp:19:
        In file included from /usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/include/python3.7m/Python.h:25:
        /Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h:108:15: fatal error: 'stdio.h' file not found
        #include_next <stdio.h>
                      ^~~~~~~~~
        1 error generated.
        error: command 'clang' failed with exit status 1
        ----------------------------------------
    ...
    </stdio.h>

    I should note that all other C extensions compile properly. Xcode tools are updated and everything.

    Python 3.7.4 via homebrew pip3 19.2.3 via homebrew clean Python 3 virtualenv. OSX Mojave 10.14.6

    It's wild to me that libhunspell.a was pointing to the wrong thing and that libhunspell.dylib didn't exist in my install.

    This might be due to Moajve: https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes Has anyone gotten this to work on 10.14?

    点赞 评论 复制链接分享
  • weixin_39945445 weixin_39945445 2021-01-03 08:35

    I was able to fix this. I first needed to install XCode 11 I then needed to manually symlink a hardcoded OSX10.14.sdk to the latest SDK via:

    
    ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
    

    I noticed this in my error message:

    
        Compiling with an SDK that doesn't seem to exist: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
        Please check your Xcode installation
        clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -I/usr/local/Cellar/hunspell/1.7.0_2/include/hunspell -D_LINUX -I/usr/local/Cellar/hunspell/1.6.2/include/hunspell -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/Users/evanmorikawa/Code/hunspell/env/include -I/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c hunspell.cpp -o build/temp.macosx-10.14-x86_64-3.7/hunspell.o -Wall
        clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk' [-Wmissing-sysroot]
    

    For some reason, it appeared to be looking for MacOSX10.14.sdk inside of /Applications/Xcode.app. I had previously not installed the full-blown XCode App (just command line tools). After installing Xcode 11, I successfully got the /Applications/Xcode.app folder; however, Xcode 11 installs MacOSX10.15.sdk instead of MacOSX10.14.sdk. As a hack around this, I symlinked the 10.14 SDKs to the 10.15 SDKs, and that appeared to work for the Hunspell compilation

    点赞 评论 复制链接分享
  • weixin_39946274 weixin_39946274 2021-01-03 08:35

    this is a macOs 10.14 specific issue with XCode as you mentionned. Symlinking does fix it for me too, but this xcode update breaks many others pip packages too.

    点赞 评论 复制链接分享
  • weixin_39572764 weixin_39572764 2021-01-03 08:35

    As suggested I managed to install pyhunspell 0.5.5 from the latest version Hunspell (1.7.0) on Python 3.7.3 by running these commands:

    
    ln -s /usr/local/lib/libhunspell-1.7.a /usr/local/lib/libhunspell.a
    ln -s /usr/local/Cellar/hunspell/1.7.0_2/lib/libhunspell-1.7.dylib /usr/local/Cellar/hunspell/1.7.0_2/lib/libhunspell.dylib
    CFLAGS=$(pkg-config --cflags hunspell) LDFLAGS=$(pkg-config --libs hunspell) pip3 install hunspell
    

    Hope this helps.

    This worked for me :) Thanks you

    点赞 评论 复制链接分享

相关推荐