我正在尝试安装dlibPython库.在某些系统(macOS,股票Ubuntu 14.04)pip install dlib工作正常,但在我们的CircleCI环境的Ubuntu 14.x中,它失败并出现以下错误.
Linking CXX shared library dlib.so
/usr/bin/ld: /opt/circleci/python/2.7.11/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32S against '_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC
error: cmake build failed!
Run Code Online (Sandbox Code Playgroud)
可能有什么不对?
dom*_*kck 16
问题是Python需要使用--enable-shared标志进行编译dlib才能成功安装.虽然在某些情况下系统Python是使用此标志构建的(例如在Ubuntu上),但我们在CI环境中使用的那个是安装的pyenv,默认情况下不会设置它.
解决方案是重新安装提供的pyenvPython,标志设置如下:
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --force 2.7.11
为了确保使用它:
machine:
python:
version: 2.7.11 # Has to match the pyenv-installed version