ฉันจะอัพเดต ogr2ogr เพื่อรวมไดรเวอร์ PostgreSQL ได้อย่างไร


28

ฉันพยายามใช้ ogr2ogr เพื่ออัปโหลดรูปร่างไฟล์ไปยังการติดตั้ง 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 หรือไม่ ฉันใช้ Mac กับ OS 10.7.4

คำตอบ:


25

ใช้ Homebrew คุณควร:

ชงติดตั้ง gdal - กับ postgresql

หรือกับ gdal รุ่นเก่า:

ชงติดตั้ง gdal - กับ postgres

หากคุณได้ติดตั้ง gdal ด้วย Brew ก่อนหน้านี้แล้ว แต่ไม่มีการสนับสนุน postgresql เพียง

ชงถอนการติดตั้ง gdal


2
การแก้ไขเล็ก ๆ :brew install gdal --with-postgresql
BenjaminGolder

QGIS จะยังทำงานร่วมกับ GDbrew ในบ้านได้หรือไม่
Simbamangu

@Simbamangu แน่นอน: homebrew เป็นเพียงผู้จัดการแพ็คเกจดังนั้นรุ่น GDAL ที่จำหน่ายจะเหมือนกันคุณสามารถสร้างตัวเองได้จากแหล่งข้อมูล
Andrea Cremaschi

2
คุณจะดำเนินการกับเครื่อง windows อย่างไร เป็นการดีที่ใช้ virtualenv
RutgerH

2
โปรดแก้ปัญหาสำหรับ windows คืออะไร
เดนิสสเตฟานอฟ

5

ช่วยตัวเองให้เจ็บปวดบ้างและใช้Kyngchaos ไบนารี / เฟรมเวิร์กบรรจุสำหรับ OSX .GDAL-Complete เป็นสิ่งที่คุณต้องการ

อีกตัวเลือกหนึ่งคือการใช้Homebrew


AFAIK นี่คือสิ่งที่ฉันใช้ ฉันไม่ได้ติดตั้งด้วยวิธีอื่น
djq

มีไฟล์นี้อยู่: /Library/Frameworks/GDAL.framework/Versions/Current/L ไลบรารี/libpq.dylibและคำสั่ง 'ใด ogrinfo' ส่งคืนจากเทอร์มินัลอย่างไร
Ragi Yaser Burhum

which ogrinfo/usr/local/bin/ogrinfoผลตอบแทน ฉันติดตั้ง GDAL และอื่น ๆ จาก KyngChaos ก่อนติดตั้ง QGis
djq

ไฟล์ libpq ที่ฉันพูดถึงมีอยู่ในตำแหน่งนั้นหรือไม่?
Ragi Yaser Burhum

1
หาก libpq.dylib ไม่มี (ไลบรารีไคลเอ็นต์ PostgreSQL) ไลบรารี OGR จะไม่โหลด
Ragi Yaser Burhum

4

สมมติว่าคุณรวบรวม gdal จากแหล่งที่มาให้รวม --with-pg = / path / to / pg_config เมื่อคุณกำหนดค่า gdal

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

./make clean

./make

./make install

แก้ไข: โปรดทราบว่าpg_configควรอยู่ในไดเรกทอรีเดียวกันกับไบนารี PostgreSQL อื่น ๆ ของคุณเช่นpsqlและอื่น ๆ โปรดทราบรายละเอียดนี้จากคำตอบของผู้ใช้ 259060 ด้านล่าง: คุณควรตรวจสอบว่ามีการติดตั้งรุ่น postgresql-server-dev ที่เหมาะสม (เช่นใน Ubuntu apt list --installed | grep postgresql-server-devหากไม่พบการใช้งานapt-cache search postgresql-server-devและติดตั้งแพ็คเกจที่เกี่ยวข้องด้วยsudo apt-get install postgresql-server-dev)


ดูเหมือนว่าฉันจะได้รับ "การสนับสนุน PostgreSQL: ใช่" ใน./configureการส่งออก แต่พยายามที่จะช่วยให้ogr2ogr -f PostgreSQL ERROR 1: Unable to find driver 'PostgreSQL'นอกจากนี้ยังไม่มีPostgreSQLในogrinfo --formats
adamczi

คุณใช้ ldconfig หลังจากการติดตั้งหรือไม่
dmci

1
ดูการแก้ไขคำตอบเกี่ยวกับการติดตั้ง postgresql-server-dev ,, ที่ควรจัดการกับข้อผิดพลาด
เธเออร์

2

ฉันได้รับข้อความเดียวกันนี้ใน Windows

มันบ่นเกี่ยวกับประเภทของคำพูด (เดี่ยวกับคู่) ฉันใช้รอบสตริงการเชื่อมต่อ การสลับคำพูดช่วยแก้ไขปัญหา


2

มีความเป็นไปได้ที่คุณอาจเห็นบางสิ่งเช่น "การสนับสนุน PostgreSQL: ไม่" แม้ว่าคุณได้กำหนดค่าแหล่งที่มาโดยใช้ "- ด้วย pg = / เส้นทาง / ไปยัง / pg_config" ... ในกรณีนั้นให้เรียกใช้ sudo apt- รับการติดตั้ง postgresql-server-dev-all แล้วลองอีกครั้ง


1

จากการอ่านเอกสารรูปแบบ ogr2ogr Vectorดูเหมือนว่าคุณจำเป็นต้องติดตั้งไลบรารีไคลเอ็นต์ PostgreSQL (libpq)

คำถามที่คล้ายกันนี้ดูเหมือนจะให้ข้อมูลเชิงลึกในการแก้ไขปัญหาที่คล้ายกันเพียงแค่มีการผูก Python

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.