ติดตั้ง GDAL ด้วย Python บน windows หรือไม่


92

ทุกคนสามารถอธิบายวิธีการติดตั้ง GDAL / OGR ด้วย Python บน Windows ได้ไหม

ฉันมี Windows Vista และฉันได้ลองทำตามข้อมูลในเว็บไซต์และดูเหมือนจะไม่ผูกไฟล์ exe ให้ฉัน

ใครสามารถอธิบายกระบวนการรวมถึงลิงค์ไปยังไฟล์ / โฟลเดอร์ที่ฉันต้องการ

ตอนนี้ฉันพยายามเรียกใช้การตั้งค่า gdal ด้วย minGW แต่สิ่งนี้ก็ล้มเหลวด้วย:

GDAL_FAIL

คำตอบ:


63

ฉันขอแนะนำให้เริ่มต้นด้วยตัวติดตั้ง OSGeo4Wซึ่งสามารถติดตั้ง GDAL ได้หลายเวอร์ชันและ Python ที่เกี่ยวข้อง มันใช้งานได้ดีและลดความซับซ้อนของเรื่องราวการปรับใช้ Windows อย่างมาก โดยเฉพาะคุณจะต้องติดตั้งpkg-gdal-pythonซึ่งอยู่ใน 'Libs' ในแผนผังตัวติดตั้ง


8
ดังนั้นฉันจึงใช้ตัวติดตั้ง OSGeo4W เพื่อติดตั้ง gdal แล้วลองใช้ส่วนต่อประสานบรรทัดคำสั่งเล็ก ๆ แต่ก็ยังไม่สามารถใช้งานในไพ ธ อนเพื่อทำสิ่งต่อไปนี้: import gdal
GuidoS

7
OSGEO4W ติดตั้งเป็นอินสแตนซ์ Python ของตัวเองภายใต้รูท OSGEO4W ในการใช้ Python ที่มี gdal และโมดูล OSGEO อื่น ๆ ทั้งหมดให้เปิดเชลล์เริ่ม OSGEO4W> ไฟล์โปรแกรม> osgeo4w เรียกใช้ Python หรือเรียกใช้สคริปต์ Python จากตรงนั้น
DavidF

8
ลองfrom osgeo import gdal
DavidF

3
@scw โปรดลองรวบรวมตัวอย่างจากความคิดเห็นในคำตอบของคุณ มันจะทำให้ง่ายต่อการรวบรวมข้อมูลที่เกี่ยวข้องเข้าด้วยกันเป็นส่วนหนึ่ง (ส่วนหนึ่งเป็นเพราะความสามารถในการรักษารูปแบบรหัส) โหวตความคิดเห็นที่คุณใช้เพื่อให้เครดิตและยอมรับแหล่งที่มา
matt wilkie

6
มีวิธีการใช้ "จาก osgeo import gdal" จากเปลือกหลามหลักของฉันแทนที่จะใช้เชลล์ของ OSGEO หรือไม่?
Alexis Eggermont

58

คุณสามารถดาวน์โหลดแพคเกจล้อ GDAL จากคริสโต Gohlke ของอย่างไม่เป็นทางการของ Windows ไบนารีสำหรับแพคเกจหลามขยาย

มันสามารถติดตั้งได้จาก cmd.exe โดยใช้สิ่งที่ชอบ:

c:\Python27\Scripts\pip.exe install GDAL-X.Y.Z-cp27-none-win_XYZ.whl

(คุณควรติดตั้งNumPy จากที่เดียวกันโดยใช้คำสั่งที่คล้ายกัน)

แม้ว่าแพคเกจนั้นไม่ได้สร้างโดยนักพัฒนา OSGeo หรือ GDAL แต่เป็นการกระจายคุณภาพสูงพร้อมรองรับ GDAL รุ่นล่าสุดที่คอมไพล์แล้วสำหรับ Python เวอร์ชัน 32 บิตและ 64 บิต ไม่จำเป็นต้องเพิ่มหรือจัดการไลบรารีภายนอก!

อัปเดตแม้กระทั่งตั้งค่าGDAL_DATAตัวแปรสภาพแวดล้อมหากไม่ได้ตั้งค่าไว้และมีPostgreSQLไดรเวอร์ให้อ่านข้อมูลจาก PostGIS


2
+1 ฉันพบว่าหน้าแหล่งที่มาอันมีค่าของ Python ดิสทริบิวชันสำหรับ Windows 64 บิต
geographika

1
ฉันประสบปัญหาในการติดตั้งนี้เนื่องจากไม่สามารถตรวจจับการติดตั้งหลามของฉันได้ ฉันติดตั้ง python26 และ python27 แล้วC:/Python2Xแต่หาไม่เจอ .... ไม่เป็นไร! เลือก 64 บิตแทน 32 ....
djq

สิ่งนี้ใช้ได้กับฉันง่ายกว่าคำตอบที่ยอมรับเนื่องจากฉันไม่ต้องการติดตั้ง Python และ Numpy อีก
Ahmed Fasih

บรรทัดเหล่านี้รวมอยู่ในการติดตั้งแล้ว
Barbarossa

ขอบคุณ @Barbarossa ฉันได้อัปเดตคำตอบนี้เพื่อให้สะท้อนถึงสถานะปัจจุบันของแพ็คเกจ
Mike T

15

อีกทางเลือกหนึ่งคือการติดตั้งการแจกจ่าย Anaconda Python ซึ่งมีแพ็คเกจสำหรับ GDAL หากคุณกำลังจะทำงานจำนวนมากโดยใช้ GDAL กับแพ็กเกจ Python อื่น ๆ (scipy, pandas, scikit-Learn และอื่น ๆ ) นี่อาจเป็นตัวเลือกที่ดีกว่า OSGeo4W ในทางกลับกันถ้าคุณต้องการใช้ Python ร่วมกับการรับรู้ระยะไกลแบบโอเพนซอร์สจำนวนมากและแพ็คเกจ GIS (GRASS, QGIS เป็นต้น) OSGeo4W อาจเป็นตัวเลือกที่ดีกว่า

คุณสามารถรับการแจกจ่ายแบบเต็มของ Anaconda ได้จาก: https://www.continuum.io/downloadsซึ่งมีแพ็คเกจ Python จำนวนมากที่มุ่งไปที่ 'data science' หรือการติดตั้งเพียงเล็กน้อยจากhttp://conda.pydata.org/miniconda HTML

ส่วนหนึ่งของการติดตั้งจะแจ้งให้คุณเพิ่มในพา ธ หลัก (ดังนั้นจึงพร้อมใช้งานจากเทอร์มินัลใด ๆ )

เมื่อติดตั้ง GDAL แล้วสามารถติดตั้งในสภาพแวดล้อมใหม่โดยใช้:

conda create -n gdal_env -c conda-forge gdal

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

ฉันแนะนำให้ติดตั้งจากช่อง conda-forge ( https://conda-forge.github.io/ ) เนื่องจากพวกเขามีความกระตือรือร้นในการรักษา GDAL ของพวกเขาให้ทันสมัยอยู่เสมอและทำให้แน่ใจว่าพวกเขาทำงานกับห้องสมุดได้มากมาย

เมื่อแพ็คเกจที่ติดตั้งสามารถอัปเดตจากภายในสภาพแวดล้อมโดยใช้

conda update gdal

1
นี่เป็นวิธีที่ง่ายที่สุดโดยเฉพาะอย่างยิ่งถ้าคุณวางแผนที่จะติดตั้งแพ็กเกจ Python ที่ซับซ้อนอื่น ๆ (เช่น scikit-Learn, numpy)
bgordon

1
มันเยี่ยมมาก! b / c ที่ดีโดยเฉพาะคุณสามารถเรียกใช้ผ่านบรรทัดคำสั่งเช่นเดียวกับผ่าน python
mmann1123

ท่านสามารถติดตั้งได้โดยไปที่ "สภาพแวดล้อม" และเลือกสภาพแวดล้อมที่ต้องการใช้ จากนั้นค้นหา "gdal" ใน "All" ของแพ็คเกจ
Goncalo Peres


9

ฉันพบว่า OSGEO4W เป็นโซลูชั่นที่ไม่ดีเพราะมันสร้างเอกภพคู่ขนานทั้งหมดเสมือนเครื่องเสมือน ฉันสามารถติดตั้ง GDAL และใช้งานใน python โดยทำตามขั้นตอนที่อธิบายไว้ที่นี่ (นี่คือลิงก์ที่มีให้โดย @ sys49152)

มันจะส่งคุณไปยัง gisinternals.com ใช้ลิงก์ไปที่ "รุ่นเสถียร" เพื่อไปที่: http://www.gisinternals.com/release.php

ตอนนี้คุณต้องเลือกระหว่าง 32 และ 64 บิตและรุ่นคอมไพเลอร์ Microsoft Visual C ++ ที่แตกต่างกัน โปรดทราบว่าสิ่งนี้จะต้องตรงกับรุ่นหลามของคุณไม่ใช่ระบบปฏิบัติการของคุณ ในกรณีของฉันฉันมี windows 64 บิต แต่ 32 python 2.7 (ที่มาพร้อมกับ ArcGIS)

เพื่อดูสิ่งที่คุณมีคุณสามารถเรียกใช้หลามบนบรรทัดคำสั่งและข้อความเช่นนี้:

C:\>python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

ดังนั้นฉันต้องใช้ "release-1500"

ฉันเลือก: MSVC 2013/win32 release-1500-gdal-1-11-3-mapserver-6-4-2

(หมายเลขรุ่นบิลด์จะเปลี่ยนตามเวลา)

ฉันก่อนดาวน์โหลดและติดตั้ง "ตัวติดตั้งทั่วไปสำหรับองค์ประกอบหลักของ GDAL": gdal-111-1500-core.msi

และเพิ่มเส้นทางและตัวแปรอื่น ๆ ตามที่อธิบายไว้ที่นี่

เพิ่มในเส้นทาง: C:\Program Files (x86)\GDAL สร้างตัวแปรสภาพแวดล้อม: GDAL_DATA = C:\Program Files (x86)\GDAL\gdal-data GDAL_DRIVER_PATH = C:\Program Files (x86)\GDAL\gdalplugins

จากนั้นฉันดาวน์โหลดและติดตั้งโมดูล python สำหรับ python 2.7 GDAL-1.11.3.win32-py2.7.msi

และหลังจากนั้นในงูหลามฉันสามารถทำ

from osgeo import gdal
ds = gdal.Open('file.tif')

เป็นต้น


มีการบันทึกไว้อย่างเป็นขั้นเป็นตอน ขอขอบคุณ.
Cotton.Rockwood

6

ฉันรู้ว่าตัวติดตั้ง OSGEO ได้รับการกล่าวถึงแล้ว แต่อย่างที่ GuidoS กล่าวว่ามันไม่ทำงานเว้นแต่ว่าคุณจะอยู่บนเชลล์ osgeow ซึ่งก็ดีและสวยหรู หากคุณไม่ได้เป็นเช่นนั้นคุณจะต้องติดตั้งแพ็กเกจใหม่แล้วต้องเรียกใช้แอพ / ปลั๊กอินจากโฟลเดอร์นั้นหรือต้องคอมไพล์การพึ่งพาทั้งหมดสำหรับ gdal และติดตั้งอีกครั้ง

อะไรที่เหมาะกับฉันคือ:

  • ใน PyDev / Eclipse (ไม่ใช่ IDE หลักของฉัน) ฉันจะเพิ่มรายการของไลบรารีไปยังตัวแปลของไพ ธ อน
  • ใช้คอนโซลในตัวเพื่อเรียกใช้ไฟล์

3
คุณสามารถตั้ง o4w python เป็น python ที่เป็นค่าเริ่มต้นของระบบได้เช่นทำให้ทุกอย่างพร้อมใช้งานโดยเพิ่มลงในรีจิสทรีของระบบ มีสคริปต์ไพ ธ อนสำหรับการทำเช่นนี้ใน Windows 32 บิตที่trac.osgeo.org/osgeo4w/ticket/114 (ต้องเพิ่ม 64 บิตด้วยมือ)
แม

5

อีกหนึ่งตัวเลือกที่ง่ายมากในปัจจุบันสำหรับการดาวน์โหลดไบนารี gdal อยู่ที่ เว็บไซต์ของ Christoph Gohlke

ขอบคุณบล็อกโพสต์ที่http://fuzzytolerance.info/code/postgis-raster-ftw/สำหรับลิงค์


เชื่อมโยงไปยังโพสต์บล็อกที่ดูเหมือนว่าจะตาย ..
Radek

อัปเดตมาที่นี่แล้ว แต่ฉันไม่แน่ใจว่ามันจะมีประโยชน์อีกต่อไปแล้วfuzzytolerance.info/blog/2010/10/25/…
snorris

ลิงค์นั้นก็ตายไปแล้วเช่นกัน
Joel Bennett

5

มันไม่ยากเลยที่จะทำ ฉันรวบรวมมันหลายครั้งก่อนที่จะใช้ Visual Studio โดยไม่มีปัญหาใด ๆ เพียงแค่ทำตามคำแนะนำที่นี่: ข้อความลิงค์

มันค่อนข้างตรงไปตรงมาเพียงแค่อ่าน makefile.vc ที่มีเอกสารที่ดีและกำหนดไดเรกทอรีที่เหมาะสมโดยเฉพาะอย่างยิ่ง Python เมื่อมันถูกสร้างขึ้นคุณควรจะมีโมดูล Python ที่คุณสามารถคัดลอกไปที่การติดตั้ง Python ของคุณซึ่งฉันได้ทำการ maually มาตลอด แต่อาจมีวิธีที่น่ากลัวกว่านี้


5

คำตอบยอดนิยมสองคำตอบโดย @SCW และ @Mike Toews นั้นยอดเยี่ยม เว็บไซต์ที่จดทะเบียนโดยไมค์นั้นมีไว้สำหรับไบนารีที่ไม่เป็นทางการซึ่งมีประโยชน์มากเมื่อไม่สามารถใช้งาน 64 บิต GDAL ได้ (ตามเวลาที่เขาเขียนคำตอบ) แต่ตอนนี้ก็ได้รับมาแล้ว ฉันได้เพิ่มคำตอบทางเลือกนี้ที่นี่เป็นแม้ว่าฉันได้กล่าวถึงมันหลายครั้งมันยังคงครอบตัดและวิกินี้อาจเป็นสถานที่ที่ดีกว่าที่จะวาง

หากคุณต้องการติดตั้งเพียง GDAL Binaries สำหรับ Python บนเครื่อง windows ฉันจะได้รับตัวติดตั้งจากGIS Internals Site ที่ยอดเยี่ยม ไซต์นี้เชื่อมโยงจากหน้าไบนารีของ GDAL / OGRอย่างเป็นทางการ นี่ช่วยให้คุณเข้าถึง GDAL ผ่านการติดตั้ง Python ปกติโดยไม่จำเป็นต้องใช้เชลล์ osgeow ไบนารีที่นี่ได้รับการดูแลและเรียบเรียงกับ Visual Studio รุ่นต่างๆอย่างสม่ำเสมอ (ดังนั้นให้เลือกขึ้นอยู่กับว่าคุณได้ติดตั้ง runtimes ใด)


ไม่มีปัญหาเลยที่จะมีการติดตั้ง MSVC หลายครั้งบนคอมพิวเตอร์เครื่องเดียวกัน หากคุณต้องการไดรเวอร์พิเศษเช่น ECW และ MrSid โปรดทราบว่ามีการรวบรวมโอกาสที่แตกต่างกันภายใต้แพลตฟอร์ม MSVC ที่แตกต่างกัน เพียงไปที่informationลิงก์และดูความแตกต่าง
AndreJJJ

4

เช่นเดียวกับผู้ร่วมสมทบอื่น ๆ คำแนะนำฉันให้เลือกติดตั้ง OSGEO4W

หากด้วยเหตุผลใดก็ตามคุณไม่ต้องการหรือไม่สามารถใช้งานได้ให้ดูเอกสารประกอบแพ็กเกจ Python ใน gdal http://pypi.python.org/pypi/GDAL/

คุณจะค้นพบตัวอย่างเช่นมีไบนารี gdal บนเว็บไซต์ OSGEO


2

ฉันใช้FWToolsใน Windows XP มันรวมถึงการติดตั้ง Python กับห้องสมุด GDAL หลังจากการติดตั้งเพียงแค่เรียกใช้สคริปต์หลามของคุณจากFWTools เชลล์


1
FWTools เป็นเครื่องมือที่ดีในเวลานั้น แต่ไม่มีการปรับปรุงตั้งแต่นั้นมา ฉันขอแนะนำให้เปลี่ยนไปใช้ gisinternlas ซึ่งยังคงใช้งานได้
AndreJJJ

0

ผมก็ไม่ได้เมื่อวานนี้ดังต่อไปนี้การกวดวิชานี้ http://www.gis.usu.edu/~chrisg/python/2009/docs/gdal_win.pdf มันทำงานได้ดีกับผม


1
โปรดสรุปแนวคิดหลักที่นี่มิฉะนั้นคำตอบนี้อาจไร้ประโยชน์เมื่อลิงก์แตก
underdark

0

ฉันมีปัญหามากในวันนี้ แต่ตอนนี้มันได้รับการแก้ไขแล้วและฉันวางการบันทึกที่นี่

https://gist.github.com/mobilestack/8749261

โดยพื้นฐานแล้วฉันหมายถึงคำตอบที่ได้รับการยอมรับของคำถามนี้

https://stackoverflow.com/questions/6009506/unable-to-install-python-and-gdal-dll-load-failed


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