Ser*_*nov 10 python django gdal python-3.x apple-m1
我正在尝试启动并运行一个 django 项目,该项目依赖于 GDAL 库。我正在开发基于 M1 的 mac。
按照官方 Django 文档上的说明,我已经通过brew 安装了必要的包
$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip
Run Code Online (Sandbox Code Playgroud)
gdalinfo --version运行良好并显示版本为3.3.1
gdal-config --libs返回此路径:-L/opt/homebrew/Cellar/gdal/3.3.1_2/lib -lgdal
符号链接也放置在自制程序的 lib 目录中,该目录位于我的路径环境变量中。
当我尝试在不指定 gdal 库路径的情况下运行 django 时,它抱怨找不到 GDAL 包(即使该库是可访问的,因为它的符号链接可通过路径环境变量获得)。
当我尝试使用 指定 GDAL 库的路径时GDAL_LIBRARY_PATH,出现以下错误:
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
Run Code Online (Sandbox Code Playgroud)
PS我已经看过这个答案,但没有帮助。
当我尝试运行 gdalinfo 时,它运行良好,但是当 django 尝试运行时,它会抛出此错误,这不是很奇怪吗?我究竟做错了什么?
GDAL 和 Python 可能是针对不同的 CPU 架构编译的。在 M1 系统上,操作系统可以运行本机 arm64 和模拟 x86_64 二进制文件。
要检查:运行file /opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.dylib和file $(which python3),这应该显示两者支持的 CPU 架构。
如果两者不匹配,则必须重新安装其中之一。请注意,如果重新安装 Python,您还必须重新安装所有带有 C 扩展的 Python 包。
| 归档时间: |
|
| 查看次数: |
4315 次 |
| 最近记录: |