Làm cách nào tôi có thể cập nhật ogr2ogr để bao gồm trình điều khiển PostgreSQL?


28

Tôi đang cố gắng sử dụng ogr2ogr để tải một shapefile lên bản cài đặt PostGres từ xa. Khi tôi chạy lệnh này:

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

Tôi nhận được thông báo lỗi sau:

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

(Tôi đã bỏ qua một số trình điều khiển vì chúng không liên quan). Có cách nào để tôi có thể cập nhật ogr2ogr để bao gồm PostgreSQL không? Tôi đang sử dụng máy Mac với HĐH 10.7.4

Câu trả lời:


25

Sử dụng Homebrew bạn nên:

pha cài đặt gdal --with-postgresql

hoặc với các phiên bản cũ hơn của gdal:

bia cài đặt gdal --with-postgres

nếu bạn đã cài đặt gdal với brew trước đó nhưng không có hỗ trợ postgresql, chỉ cần

bia gỡ cài đặt gdal


2
một sự điều chỉnh nhỏ:brew install gdal --with-postgresql
BenjaminGolder

QGIS vẫn sẽ làm việc với GDAL homebrew chứ?
Simbamangu

@Simbamangu Chắc chắn: homebrew chỉ là một trình quản lý gói, vì vậy các phiên bản GDAL mà nó phân phối giống như bạn có thể tự xây dựng từ nguồn
Andrea Cremaschi

2
Làm thế nào bạn sẽ tiến hành trên một máy tính windows? Lý tưởng nhất là sử dụng virtualenv
RutgerH

2
Giải pháp cho windows là gì?
Denis Stephanov

5

Hãy tiết kiệm cho mình một chút đau đớn và sử dụng các nhị phân / khung đóng gói Kyngchaos cho OSX .GDAL-Complete là thứ bạn đang tìm kiếm.

Một tùy chọn khác là sử dụng HomeBrew .


AFAIK đây là những gì tôi đã sử dụng. Tôi đã không cài đặt nó theo bất kỳ cách nào khác.
djq

Tập tin này có tồn tại không:
Ragi Yaser Burhum

which ogrinfotrả lại /usr/local/bin/ogrinfo. Tôi đã cài đặt GDAL và những người khác từ KyngChaos trước khi cài đặt QGis.
djq

Tập tin libpq tôi đã đề cập có tồn tại ở vị trí đó không?
Ragi Yaser Burhum

1
Nếu libpq.dylib không có ở đó (thư viện máy khách PostgreSQL), thư viện OGR sẽ không tải.
Ragi Yaser Burhum

4

giả sử bạn đã biên dịch gdal từ nguồn, chỉ cần bao gồm --with-pg = / path / to / pg_config khi bạn định cấu hình gdal.

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

./make clean

./make

./make install

EDIT: Lưu ý rằng pg_configphải nằm trong cùng thư mục với các nhị phân PostgreSQL khác của bạn, như psql, v.v. apt list --installed | grep postgresql-server-devnếu không tìm thấy sử dụng apt-cache search postgresql-server-devvà cài đặt gói tương ứng với sudo apt-get install postgresql-server-dev).


Có vẻ như tôi nhận được "hỗ trợ PostgreSQL: có" trong ./configuređầu ra, nhưng cố gắng ogr2ogr -f PostgreSQLcung cấp ERROR 1: Unable to find driver 'PostgreSQL'. Ngoài ra, không có PostgreSQLtrongogrinfo --formats
adamczi

Bạn đã chạy ldconfig sau khi cài đặt chưa?
dmci

1
Xem chỉnh sửa để trả lời về việc cài đặt postgresql-server-dev ,, cần xử lý lỗi.
thay thế

2

Tôi đã nhận được thông báo tương tự trong khi trên Windows.

Nó đã phàn nàn về loại trích dẫn (đơn so với gấp đôi) mà tôi đang sử dụng xung quanh chuỗi kết nối. Chuyển báo giá đã khắc phục sự cố.


2

Có khả năng bạn có thể thấy một cái gì đó như "Hỗ trợ PostgreSQL: không", mặc dù bạn đã định cấu hình nguồn bằng cách sử dụng "--with-pg = / path / to / pg_config" ... trong trường hợp đó, hãy chạy sudo apt- nhận cài đặt postgresql-server-dev-all và sau đó thử lại.


1

Từ việc đọc tài liệu định dạng Vector ogr2ogr , có vẻ như bạn cần cài đặt thư viện máy khách PostgreQuery (libpq).

Câu hỏi tương tự này dường như cung cấp một số cái nhìn sâu sắc trong việc giải quyết một vấn đề tương tự, chỉ với các ràng buộc Python.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.