如何更新ogr2ogr以包括PostgreSQL驱动程序?


28

我正在尝试使用ogr2​​ogr将shapefile上传到远程PostGres安装。当我运行此命令时:

celenius:~ celenius$ ogr2ogr -f PostgreSQL PG:"host=255.34.00.00 user=postgres dbname=mydb password=***" Dropbox/data/roads.shp;

我收到以下错误消息:

Unable to find driver `PostgreSQL'.
The following drivers are available:
  -> `ESRI Shapefile'
  -> `MapInfo File'
  -> `UK .NTF'
 ...
  -> `SVG'
  -> `CouchDB'
  -> `Idrisi'
  -> `ARCGEN'
  -> `SEGUKOOA'
  -> `SEGY'

(我省略了一些无关紧要的驱动程序)。有没有一种方法可以更新ogr2ogr以包括PostgreSQL?我正在使用OS 10.7.4的Mac

Answers:


25

使用自制软件,您应该:

brew install gdal --with-postgresql

或旧版gdal:

brew install gdal --with-postgres

如果您之前已经安装了带有brew的gdal,但没有postgresql支持,

brew卸载gdal


2
一个小小的更正:brew install gdal --with-postgresql
BenjaminGolder

QGIS仍可与自制GDAL一起使用吗?
Simbamangu 2014年

@Simbamangu当然:homebrew只是一个软件包管理器,因此它分发的GDAL版本与您可以从源代码构建的版本相同
Andrea Cremaschi 2014年

2
您将如何在Windows机器上进行操作?理想情况下使用virtualenv
RutgerH 2013年

2
请问Windows的解决方案是什么?
丹尼斯·斯蒂芬诺夫

5

减轻您的痛苦,并为OSX使用Kyngchaos打包的二进制文件/框架。GDAL-Complete是您所需要的。

另一种选择是使用HomeBrew


AFAIK,这就是我用的。我没有其他安装方式。
djq 2012年

该文件是否存在:/Library/Frameworks/GDAL.framework/Versions/Current/Libraries/libpq.dylib,并且“哪个ogrinfo”命令从终端返回什么?
Ragi Yaser Burhum 2012年

which ogrinfo返回/usr/local/bin/ogrinfo。在安装QGis之前,我从KyngChaos安装了GDAL和其他产品。
djq 2012年

我提到的libpq文件在该位置是否存在?
拉吉·亚瑟(Ragi Yaser Burhum)2012年

1
如果libpq.dylib不存在(PostgreSQL客户端库),则OGR库将不会加载。
拉吉·亚瑟·布尔洪

4

假设您已从源代码编译gdal,则在配置gdal时只需包含--with-pg = / path / to / pg_config。

./configure -with-pg=/path/to/pg_config ...

./make clean

./make

./make install

编辑:请注意,pg_config该目录应与其他PostgreSQL二进制文件位于同一目录中,例如psql等。也请注意,来自user259060的以下答案的此详细信息:您应验证是否安装了适当的postgresql-server-dev版本(例如,在Ubuntu上使用apt list --installed | grep postgresql-server-dev如果找不到,请使用apt-cache search postgresql-server-dev并安装相应的软件包sudo apt-get install postgresql-server-dev


似乎我在./configure输出中得到“ PostgreSQL支持:是” ,但尝试ogr2ogr -f PostgreSQL给出ERROR 1: Unable to find driver 'PostgreSQL'。此外,没有PostgreSQLogrinfo --formats
adamczi

您在安装后运行ldconfig吗?
dmci

1
请参阅有关安装postgresql-server-dev的答案的编辑,该编辑应处理该错误。
塞耶

2

在Windows上,我收到了相同的消息。

它抱怨我在连接字符串周围使用的引号类型(单引号或双引号)。切换引号可以解决此问题。


2

即使您已经使用“ --with-pg = / path / to / pg_config”配置了源,也有可能会看到类似“ PostgreSQL支持:否”的信息……在这种情况下,请运行sudo apt-获取安装postgresql-server-dev-all,然后重试。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.