Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

558
Vistas
La reubicación R_X86_64_32S contra '_Py_NotImplementedStruct' no se puede usar al crear un objeto compartido; recompilar con -fPIC

Estoy tratando de instalar la biblioteca dlib Python. En algunos sistemas (macOS, stock Ubuntu 14.04) pip install dlib funciona bien, pero en Ubuntu 14.x que es parte de nuestro entorno CircleCI falla con el siguiente error.

 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!

¿Qué podría estar mal?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El problema era que Python debe compilarse con el indicador --enable-shared para que la instalación de dlib se realice correctamente. Mientras que en algunos casos el sistema Python está construido con esta bandera (por ejemplo, en Ubuntu), el que estábamos usando en el entorno de CI se instaló a través pyenv , que no lo configura de manera predeterminada.

La solución fue reinstalar Python proporcionado por pyenv con el indicador establecido de esta manera:

PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --force 2.7.11

Para asegurarse de que esto se use: machine: python: version: 2.7.11 # Has to match the pyenv-installed version

over 4 years ago · Santiago Trujillo Denunciar

0

Tuve un problema similar al construir matplotlib (una dependencia para scikit-image ) para aws lambda python 3.6 dentro del contenedor docker de amazon amazon-linux-python-3.6 .

En resumen, matplotlib estaba dando el mismo error que OP tenía para /usr/lib/libpython3.6m.a . Resultó que había dos bibliotecas de este tipo en el contenedor docker de Amazon:

 find / -name "libpython3.6m.a" /usr/lib/libpython3.6m.a /usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6m.a

Así que cambié el nombre de /usr/lib/libpython3.6m.a a otra cosa para que matplotlib no lo use y elija la segunda opción:

enter code here mv /usr/lib/libpython3.6m.a /usr/lib/libpython3.6m.a.moved

Después de este cambio, scikit-image tuvo éxito usando pip3 install --no-binary scikit-image scikit-image .

over 4 years ago · Santiago Trujillo Denunciar

0

Como FYI, mi caso particular se resolvió cambiando el nombre de '/usr/local/lib/libpython2.7.a' a '/usr/local/lib/libpython2.7.a.moved'. De acuerdo con la salida 'yum whatprovides /usr/local/lib/libpython2.7.a', esto no se instaló como parte de ningún paquete instalado a través de yum. Quitar esto del camino en este caso, resolvió mi problema.

Aquí estaba mi mensaje de error original:

 /usr/bin/ld: /usr/local/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

/usr/local/lib/libpython2.7.a: error al agregar símbolos: valor incorrecto recopilar2: error: ld devolvió 1 estado de salida

Dado que ninguno de mis paquetes instalados representaba .a lib, moverlo a un lado era una opción para mí.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda