それについてはたくさんの質問がありましたが、誰も私の問題を解決しませんでした。
私はマシンを持っています:
- Windows 7 x64
- Python 3.4.3 x64
- gdalがインストールされました:
gdalinfo --version --> GDAL 1.11.4, released 2016/01/25
; ここからホイールGDAL-1.11.4-cp34-none-win_amd64.whl
からグダルを取り付けました
GDALはにインストールされC:\Python34\Lib\site-packages\osgeo
ます。そこには、gdalおよびogrおよび.pydファイル用の.exeファイルがたくさんあります。
- fiona installed:
Fiona-1.6.3-cp34-none-win_amd64.whl
同じWebサイトのwheelからインストールされました。
このコードを実行でき、正常に実行されます。
import gdal
import ogr
from gdalconst import *
shp = r"C:\Data\GIS\PTS.shp"
driver = ogr.GetDriverByName('ESRI Shapefile')
dataset = driver.Open(shp)
layer = dataset.GetLayer()
layer.GetFeatureCount()
schema = layer.schema
fields = [field.GetName() for field in schema]
feature = layer.GetNextFeature()
また、OGR形式を取得することもできます:ogrinfo --formats
Windows cmdでそれらの束を出力します(ただし、FileGDBはありません)。
このコードを実行でき、正常に実行されます。
import fiona
with fiona.drivers():
with fiona.open(path=r'C:\Data\GIS\TemplateData.gdb', driver='OpenFileGDB') as source:
print(source.meta)
ただし、このコードは実行されません。
with fiona.drivers():
with fiona.open(path=r'C:\Data\GIS\TemplateData.gdb', driver='FileGDB') as source:
print(source.meta)
必要なEsri File GDBコンパイルライブラリがないためです。
EsriダウンロードページFileGDB_API_VS2012_1_3.zip
からダウンロードして解凍しました。私が理解したように、.dllはすでにそこにあるので何もコンパイルする必要はありません。
Esri File GDB APIのdllを登録して、私の環境のfionaで使用できるようにする正しい手順は何ですか?
更新:(ルークの回答に基づく)
EsriのダウンロードページFile Geodatabase API 1.4 version for Windows (Visual Studio 2010)
からダウンロードしました。をにコピーしました。ここに2つのファイルがあります。FileGDB_API_VS2010_1_4\bin64\FileGDBAPI.dll
C:\Python34\Lib\site-packages\osgeo
ogr_FileGDB.dll
FileGDBAPI.dll
Windows変数を作成しましたGDAL_DRIVER_PATH : C:\Python34\Lib\site-packages\osgeo\gdalplugins
。ではPATH
、変数、私は除いて何もPythonの特定を持っていませんC:\Python34\Lib\site-packages\osgeo
。
今実行しているときogrinfo --formats
、私は取得-> "FileGDB" (read/write)
してFileGDBドライバを操作するためのPythonコードを使用することができています。
[python install dir]\Lib\site-packages\osgeo
編集で言及したgdalpluginsディレクトリではなく、回答で指定したディレクトリにコピーします。そのディレクトリには、サードパーティのdllではなく、ドライバプラグインのみが含まれます。