es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Símbolo no encontrado en el espacio de nombres plano ‘_MQBACK’ (Python 3.9 – macOS 12.1 Silicon)

Instalando pymqi en un MacOS M1 Pro 12.1 Monterey, Python 3.9.9 en un entorno virtual y el sospechoso habitual apareció nuevamente:

Traceback (most recent call last):
  File "/Users/a.gounaris/.virtualenvs/mxhub39/lib/python3.9/site-packages/pymqi/__init__.py", line 132, in <module>
    from . import pymqe # type: ignore
ImportError: dlopen(/Users/a.gounaris/.virtualenvs/mxhub39/lib/python3.9/site-packages/pymqi/pymqe.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_MQBACK'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/a.gounaris/.virtualenvs/mxhub39/lib/python3.9/site-packages/pymqi/__init__.py", line 134, in <module>
    import pymqe # type: ignore # Backward compatibility
ModuleNotFoundError: No module named 'pymqe'

Todos los caminos están en su lugar /opt/mqm/bin:/opt/mqm/samp/bin y Python ve la variable de entorno os.environ['DYLD_LIBRARY_PATH']=='/opt/mqm/lib64'.

Después de reinstalar pymqi con la bandera --verbose, se mostró esta advertencia:

ld: warning: ignoring file /opt/mqm/lib64/libmqic_r.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

Podría ser la causa principal de la excepción “symbol not found in flat namespace ‘_MQBACK'” en plataformas M1 Pro Silicon.
Dice que libmqic_r.dylib es ignorada.

¿Podría una nueva versión del Kit de herramientas de MacOS construida para macOS-arm64 resolver el problema?

Otra opción -teóricamente hablando- podría ser ejecutar la construcción para macOS-x86_64 con Rosetta 2 según se sugiere en este post, pero no sé cómo hacerlo.

Cualquier ayuda será muy apreciada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para instalar Pymqi en un MacOS M1 Pro

    El problema con la instalación de pymqi en MacOS M1 Pro 12.1 Monterey podría estar relacionado con el mensaje de advertencia que aparece al ejecutar la instalación con la bandera --verbose. El mensaje de advertencia indica que el archivo libmqic_r.dylib se ignora al compilar para macOS-arm64, pero se intenta vincular con un archivo compilado para macOS-x86_64. Esto podría ser la causa raíz de la excepción de “símbolo no encontrado” para '_MQBACK' en las plataformas M1 Pro Silicon.

    Una nueva versión del kit de herramientas de MacOS compilado para macOS-arm64 podría solucionar el problema. Alternativamente, ejecutar la compilación para macOS-x86_64 con Rosetta 2 también podría ser una solución. Sin embargo, actualmente se desconocen las instrucciones sobre cómo hacer esto.

    Para resolver este problema, sugerimos verificar si hay una versión actualizada de pymqi que sea compatible con el entorno actual de MacOS M1 Pro 12.1 Monterey y Python 3.9.9. Además, se debe verificar la variable de entorno DYLD_LIBRARY_PATH para asegurarse de que esté apuntando a la ruta de la biblioteca correcta.

Comments are closed.