python - DLL 加载失败 : Unable to use GDAL on windows

标签 python dll windows-10 gdal

当我尝试加载 GDAL 时,我得到:

C:\Windows\System32>python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from osgeo import gdal;
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python35\lib\site-packages\osgeo\__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "C:\Python35\lib\site-packages\osgeo\__init__.py", line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
  File "C:\Python35\lib\imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "C:\Python35\lib\imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: The specified module could not be found

如何知道它想要哪个 DLL?如果它报告它的名字,我会检查路径。

现在我已经安装了这个

http://download.gisinternals.com/sdk/downloads/release-1500-x64-gdal-2-1-3-mapserver-7-0-4/gdal-201-1500-x64-core.msi

还有这个

http://download.gisinternals.com/sdk/downloads/release-1500-x64-gdal-2-1-3-mapserver-7-0-4/GDAL-2.1.3.win-amd64-py3.4.msi

我在 C:\Python35 中有 Python 并明确设置它以便稍后安装。

路径设置:

>echo %PATH%
C:\Python35;C:\Program Files\GDAL;C:\Python35\Scripts;

设置变量

>echo %GDAL_DATA%
C:\Program Files\GDAL\gdal-data

>echo %GDAL_DRIVER_PATH%
C:\Program Files\GDAL\gdalplugins

还有什么巫术可以尝试?

最佳答案

我注意到的主要事情是您似乎已经安装了 Python 3.4 绑定(bind),但使用的是 Python 3.5?那是对的吗?这可能是一个线索。

您可以使用 Dependency Walker 之类的工具来进一步调查问题。 https://en.wikipedia.org/wiki/Dependency_Walker

您的 PATH 变量中真的只有三个路径吗?对于 PATH 变量,顺序很重要。

自从我从“conda-forge” channel 切换到 Miniconda + GDAL 后,我的 DLL 问题(几乎)减少了,我强烈推荐它。但这并不能回答您的问题。

关于python - DLL 加载失败 : Unable to use GDAL on windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44033109/

相关文章:

Python:如何打印单个字典值?

xaml - System.NullReferenceException发生在XAML设计器中

windows - 我可以在 Windows 8.1 设备上开发 Windows 10 应用程序吗?

windows - 部署我的 UWP 应用程序时出错

python - MySQL 连接/查询使文件不起作用

python - 你可以使用字符串来实例化一个类吗?

python - 迭代列的条件以查找其他列值

c++ - 读取dll文件中的文本文件

c++ - 在调试器中查看来自 DLL 的 pimpl

c++ - Visual Studio C++ : When should I be using __declspec(dllimport)?