无法在 gdal 中加载“gcs.csv”文件

use*_*848 2 python gdal

这个问题可能会重复,但我没有得到答案。我已经在 python ide 中编写了流畅的代码。

out_srs = osr.SpatialReference()

   **self.out_srs.ImportFromEPSG(4326)** 
Run Code Online (Sandbox Code Playgroud)

它运行良好,但是当我从应用程序运行它时,它会导致如下错误

注意 - 用 2 颗星括起来的行中的错误-----

"Unable to load EPSG support gcs.csv file check setting GDAL_DATA environment variable which point to gdal library contains EPSG.csv file"
Run Code Online (Sandbox Code Playgroud)

我已经完成了,但我仍然收到此错误。但此代码单独运行但不在应用程序中运行。此代码来自 gdal 的 gdal2tile 模块。我正在使用 python 2.7.6 和 gdal 1.10.0 我无法弄清楚问题是什么以及它在哪里。请建议如何解决这个问题。

Mik*_*e T 5

GDAL 需要一个名为的环境变量GDAL_DATA,该变量指向一个包含各种数据文件的目录,包括gcs.csv. 在此处了解更多信息

要检查是否GDAL_DATA已设置和包含gcs.csv,以及是否可读,请使用以下代码段检查应用程序。这应该靠近引发错误的代码。

import os
import stat
gdal_data = os.environ['GDAL_DATA']
print('is dir: ' + str(os.path.isdir(gdal_data)))
gcs_csv = os.path.join(gdal_data, 'gcs.csv')
print('is file: ' + str(os.path.isfile(gcs_csv)))
st = os.stat(gcs_csv)
print('is readable: ' + str(bool(st.st_mode & stat.S_IRGRP)))
Run Code Online (Sandbox Code Playgroud)

Anaconda / Miniconda 用户

使用 Anaconda 或 Miniconda 的正确方法是激活安装了 GDAL的环境。例如,从 Windows cmd.exe 激活 Anaconda 的基础环境:

call %LOCALAPPDATA%\Continuum\anaconda3\Scripts\activate.bat base
Run Code Online (Sandbox Code Playgroud)

激活环境会触发环境变量,例如 GDAL_DATA(和其他)被设置,并且经常更改显示环境名称的命令提示符前缀。当环境被停用时,这些环境变量将被取消设置/恢复。

conda deactivate
Run Code Online (Sandbox Code Playgroud)