C#开发的GDAL程序部署遇到的问题 (无法加载 DLL“gdal_wrap” Unable to load DLL 'gdal_wrap')

24 篇文章 7 订阅
说明:
若C#版本的程序部署失败:一般来说,如果相应的.netframework部署正常,GDAL库出现以下问题:
        gdal_swap.dll或gdalXX.dll(xx为版本号)加载不上的问题;
        “OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常 The type initializer for 'OSGeo.GDAL.GdalPINVOKE' threw an exception;
        无法加载 DLL“gdal_wrap”    Unable to load DLL 'gdal_wrap';

应使用Dependency Walker(绿色软件,可以去官网下载, 注意这个东西有X64和X86两个版本,不能混用)进行检查,检查调用的库中缺失了哪些DLL文件,再进行补全,常见的错误里,有:
  1. MSVCP80.dll,MSVCR80.dll:这表示需要安装Microsoft Visual C++ 2008 Redistrbutable Package
  2. MSVCP100.dll,MSVCR100.dll:这表示需要安装Microsoft Visual C++ 2010 Redistrbutable Package
    ( 注:部分情况下,直接将这些文件拷贝到程序文件夹下也可以解决该问题)       


另有一些较少见的DLL缺失或版本错误,包括msjava.dll,mpr.dll等,解决起来较为复杂,有些可能需要自己对库文件进行编译才能解决,将出错而且不需要的DLL文件在编译时排除掉



注:其实如果是使用网上下载的库文件出现这个问题,最好的解决方案是下载GDAL的源代码,自己编译一遍,自己编译的DLL绝大部分不会出现以上的错误,而且可以减少非常多的DLL(大部分功能平常其实是用不着的),编译也非常简单,具体过程可以参考我的另一篇文章http://blog.csdn.net/rrrrssss00/article/details/7106845


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于无法到特定的程序而导致的。根据引用,可以看到错误信息中提到了"_gdal"模块。这个模块通常与GDAL库相关联,GDAL是一个用于地理空间数据处理的开源库。而根据引用,错误信息中还有一段关于osgeo._gdal的错误信息,这也是与GDAL相关的模块。因此,这个错误可能与GDAL库有关。 为了解决这个问题,你可以尝试以下几个步骤: 1. 确保你已经正确安装了GDAL库和相关的依赖项。你可以使用命令`pip install gdal`来安装GDAL库,但需要注意GDAL库的安装可能会因为系统和Python版本的不同而有所差异。 2. 检查你的环境变量和路径设置是否正确。根据引用中的错误信息,可能是因为os.environ对象中不含有'USE_PATH_FOR_GDAL_PYTHON'项而导致的。你可以尝试在代码中添加以下语句来设置这个环境变量:`os.environ['USE_PATH_FOR_GDAL_PYTHON'] = 'YES'`。 3. 如果你是在Windows系统下运行Python脚本,并且仍然遇到这个错误,那么可能是因为缺少了一些系统级别的DLL文件或者路径配置不正确。你可以尝试重新安装GDAL库,并确保将相关的DLL文件添加到系统路径中。 总之,遇到"ImportError: DLL load failed while importing _gdal: 不到指定程序"错误时,你可以先确保正确安装了GDAL库和相关依赖项,检查环境变量和路径设置是否正确,并尝试重新安装GDAL库和添加相关DLL文件到系统路径中。如果问题仍然存在,你可能需要进一步研究特定的操作系统和Python版本以及GDAL库的兼容性问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值