Python 多版本错误 _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE

Python multi-version error _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE

当 运行 应用与 python3.5

时出现错误
Traceback (most recent call last):                                                                                                                                              
  File "/usr/local/bin/face_recognition", line 7, in <module>                                                                                                                   
    from face_recognition.cli import main                                                                                                                                       
  File "/usr/local/lib/python3.5/site-packages/face_recognition/__init__.py", line 7, in <module>                                                                               
    from .api import load_image_file, face_locations, face_landmarks, face_encodings, compare_faces, face_distance                                                              
  File "/usr/local/lib/python3.5/site-packages/face_recognition/api.py", line 4, in <module>                                                                                    
    import dlib                                                                                                                                                                 
  File "/usr/local/lib/python3.5/site-packages/dlib/__init__.py", line 1, in <module>                                                                                           
    from .dlib import *                                                                                                                                                         
ImportError: /usr/local/lib/python3.5/site-packages/dlib/dlib.so: undefined symbol: _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE

我可以看出 libboost 是问题所在,我用适当版本的 python 编译了它并设置了 python 根目录,但仍然有错误。我错过了什么?

我也遇到这种问题。在我的 Mac 上,我从源代码安装了 boost 1.58 版本。

当我尝试通过以下命令安装 dlib 时:

brew install cmake
brew install boost
brew install boost-python --with-python3
sudo pip3 install numpy
sudo pip3 install scipy
sudo pip3 install scikit-image 
sudo pip3 install dlib

我认为 dlib 在我的 Mac 上使用了错误版本的 boost。

这是我的解决方案:

  1. 尝试使用 brew uninstall 删除 boost,并从 /usr/local/include & /usr/local/lib 中删除所有相关的 boost include 和 lib 文件。

  2. 重新安装上述 brew & pip3 命令以重新安装所有相关库。

经过这两个步骤,我的 Mac 现在可以在 Python3 下正确使用 dlib。