(M1 Mac)Geodjango GDAL:mach-o,但架构错误



我正试图让GeoDjango在macos上运行,但遇到了GDAL问题。

我已经下载并安装了GDAL没有问题(GDAL完全二进制(也从自制软件安装。

不幸的是,当我用自制程序安装gdal时,django找不到gdal,并抛出gdal没有发现错误,之后。我安装了从KyngChaos GeoDjango二进制django找到gdal,但现在抛出;

OSError: dlopen(/Library/Frameworks/gdal.framework/gdal, 6): no suitable image found.  Did find:
/Library/Frameworks/gdal.framework/gdal: mach-o, but wrong architecture
/Library/Frameworks/gdal.framework/gdal: mach-o, but wrong architecture
/Library/Frameworks/GDAL.framework/Versions/3.1/GDAL: mach-o, but wrong architecture
/Library/Frameworks/GDAL.framework/Versions/3.1/GDAL: mach-o, but wrong architecture

我认为Kyngchaos的构建与arm平台不兼容

任何帮助都将不胜感激。

Django版本:3.0也尝试了3.2
Gdal版本:3.2/3.1/2.4所有人都尝试了
Python版本:3.8
Postgresql版本:13
安装了Postgis/Geos
Gdal config--libs:

-L/opt/homebrew/Cellar/gdal/3.2.2_3/lib -lgdal

查找gdal和geos的路径

find /opt -name "libgdal.dylib" -print 2>/dev/null
find /opt -name "libgeos_c.dylib" -print 2>/dev/null

复制gdal和geos的输出(可能不止一个,每个选择一个(

/opt/homebrew/Cellar/gdal/3.6.2/lib/libgdal.dylib
/opt/homebrew/Cellar/geos/3.11.1/lib/libgeos_c.dylib

将其放入settings.py文件

把它放在DJANGO设置文件中,默认的在这里,但你的相似性可能会有所不同:

mysite
├── manage.py
└── mysite
├── __init__.py
└── settings.py

文件底部:

# mysite/mysite/settings.py
GDAL_LIBRARY_PATH="/opt/homebrew/Cellar/gdal/3.6.2/lib/libgdal.dylib"
GEOS_LIBRARY_PATH="/opt/homebrew/Cellar/geos/3.11.1/lib/libgeos_c.dylib"

dydl还监视~/lib文件夹,因此最简单的解决方案是:

ln -s /opt/homebrew/lib ~/lib

brew info gdal

它应该会给你这样的东西:

/opt/homebrew/Cellar/gdal/3.2.2_3/lib/libgdal.dylib

将其放入您的GDAL_LIBRARY_PATH中。

从这里开始,您可以通过在异常行中放置一个断点来进一步调试它。

相关内容

最新更新