我正在尝试安装 GeoDjango,结果比我想象的要难得多。在我的 64 位 Windows 10 系统上安装 OSGeo4W 后,我在 settings.py 文件中设置了所有内容,但现在我收到此错误:
FileNotFoundError: Could not find module 'C:\OSGeo4W\bin\gdal304.dll' (or one of its dependencies). Try using the full path with constructor syntax.
我也设置了
GDAL_LIBRARY_PATH
但它不起作用。
GDAL_LIBRARY_PATH = "C:\\OSGeo4W\\bin\\gdal304.dll"
这是我的
C:\OSGeo4W\bin
路径,如您所见,gdal304.dll
文件就在那里
我的 Python 版本是 3.10.6 Django 的版本是 4.1
我已经试着自己解决了一个星期,但慢慢地我不知道该怎么做
我也遇到了这个问题,因为我今天更新了我的旧 GEO Django 安装程序。
您可以按照其他人的建议使用 Docker Image,但我更喜欢本地解决方案,因为我不想每次开始编码时都启动 Docker。
您的解决方案在括号中:(或其依赖项之一)
你可以从
gdal304.dll
中查找传递依赖。有几个工具可以做到这一点(见这里)。我现在在这里使用 Git 集成的 MinGW - 已安装 ldd
的 Shell。 Windows 上任何(较新的)Git 安装都应该是这种情况。
如您所见,您的操作系统已经填充了一些依赖项。其他缺失的,必须从 OSGeo4W 中补充。如果将其与 OSGeo4W 中的
bin
目录进行比较,您将看到问题:
遗憾的是,简单的“重命名”并不能解决问题。我很幸运,还没有删除我的旧 OSGeo4W 版本。在旧文件中,我找到了必要的 DLL。
所以,长话短说:您需要
jpeg.dll
文件。
有像“windll.com”或“dll-files.com”这样的网站,但我不推荐使用它们。我不信任这些网站。您可以安装“MSYS2”、“Cygwin”甚至“MVSC”之类的东西,安装“libjpeg-turbo”库,然后最后复制并粘贴必要的 DLL 文件。
在 libjpeg-turbo 的官方网站上也有建议:https://libjpeg-turbo.org/Documentation/OfficialBinaries
但这对于只想拥有 DLL 文件的人来说似乎需要做很多工作,但话又说回来:切勿盲目地从 Internet 下载库并将其加载到您的应用程序中。这些图书馆可以做些什么!