Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.1K
Visualizações
M1 Mac - Error de arquitectura incorrecta de GDAL [Django]

Estoy tratando de poner en marcha un proyecto Django, que depende de la biblioteca GDAL. Estoy trabajando en un Mac basado en M1.

Siguiendo las instrucciones en los documentos oficiales de Django , instalé los paquetes necesarios a través de brew

 $ brew install postgresql $ brew install postgis $ brew install gdal $ brew install libgeoip

gdalinfo --version funciona bien y muestra la versión como 3.3.1

gdal-config --libs devuelve esta ruta: -L/opt/homebrew/Cellar/gdal/3.3.1_2/lib -lgdal

también se coloca un enlace simbólico en el directorio lib de homebrew, que está en mi variable env de ruta.

Cuando trato de ejecutar django sin especificar la ruta a la biblioteca gdal, se queja de que no puede encontrar el paquete GDAL (aunque se puede acceder a la biblioteca, ya que hay un enlace simbólico disponible a través de la variable path env).

Cuando trato de especificar la ruta a la biblioteca GDAL usando GDAL_LIBRARY_PATH , aparece este error:

 OSError: dlopen(/opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.dylib, 6): no suitable image found. Did find: /opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.dylib: mach-o, but wrong architecture /opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.29.dylib: mach-o, but wrong architecture

PD: ya he visto esta respuesta , pero no ayudó.

¿No es extraño cuando trato de ejecutar gdalinfo, funciona bien, pero cuando django intenta ejecutarlo, me arroja este error? ¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

¡Intenta usar la nueva versión arm de python!

 brew install --cask miniforge conda init zsh conda activate conda install numpy scipy scikit-learn
over 4 years ago · Santiago Trujillo Relatório

0

Es probable que GDAL y Python estén compilados para diferentes arquitecturas de CPU. En un sistema M1, el sistema operativo puede ejecutar binarios arm64 nativos y x86_64 emulados.

Para verificar: ejecute file /opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.dylib y file $(which python3) , que debería mostrar las arquitecturas de CPU admitidas para ambos.

Si los dos no coinciden, tendrá que reinstalar uno de ellos. Tenga en cuenta que si reinstala Python, también debe reinstalar todos los paquetes de Python con extensiones C.

over 4 years ago · Santiago Trujillo Relatório

0

Si no necesita que esto se ejecute de forma nativa en el M1, considere usar una máquina virtual Linux.

Mi solución definitiva a este problema fue crear una VM de Ubuntu usando Multipass de Canonical en mi Mac M1, luego instalar postgresql, postgis y todas las dependencias relevantes, incluido GDAL, como se haría con Linux.

https://multipass.run/

Usé lo siguiente para instalar postgres y postgis:

 sudo apt-get install libpq-dev #required for psycop2-binary installation sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get -y install postgresql-13 #or other version number sudo apt install postgis postgresql-13-postgis-3 sudo -i -u postgres createuser yourusername createdb postgis_db -O yourusername #create your db psql -d postgis_db CREATE EXTENSION postgis; #make sure these are all installed: sudo apt-get install binutils libproj-dev sudo apt-get install gdal-bin sudo apt-get install libgeos++ sudo apt-get install proj-bin

Hago SSH en la VM de ubuntu a través de VSCode y desarrollo django como de costumbre. Hay un buen artículo sobre la configuración de Multipass aquí.

No he tenido problemas con esta configuración en M1. ACTUALIZACIÓN: a partir del 10/01/2022, hay algunos problemas con el firewall de MacOS en Monterey 12.1 que no funciona bien con Multipass. Es un problema abierto en GitHub y Canonical está trabajando en ello.

over 4 years ago · Santiago Trujillo Relatório

0

Me encontré con el mismo problema, en mi caso se resolvió agregando GDAL_LIBRARY_PATH en settings.py, pero también GEOS_LIBRARY_PATH

 GDAL_LIBRARY_PATH = '/opt/homebrew/Cellar/gdal/3.4.1_1/lib/libgdal.dylib' GEOS_LIBRARY_PATH = '/opt/homebrew/Cellar/geos/3.10.2/lib/libgeos_c.1.16.0.dylib'
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda