การติดตั้ง GEOS, PROJ, GDAL / OGR เป็น python virtualenv บน Mac OS X


12

ฉันพยายามตั้งค่า virtualen python แยกเพื่อทำงานกับโครงการ GIS ใน Mac OS X ของฉันดูเหมือนว่าฉันจะต้องติดตั้ง GEOS, PROJ, GDAL / OGR จากเว็บไซต์ kyngchaos ที่นี่http://www.kyngchaos.com/ ซอฟต์แวร์ / กรอบงานและไม่ใช่ easy_install ลงใน virtualenv ของฉัน ถูกต้องหรือไม่

การดาวน์โหลดที่มีอยู่ใน kyngchaos คือตัวติดตั้ง pkg และไม่ใช่เพียงแค่ไข่หรือ bdist ของโมดูลหลาม ดังนั้นฉันไม่แน่ใจว่าตัวติดตั้งกำลังทำอะไรกับสภาพแวดล้อมนอกเหนือจากการคัดลอกไฟล์ไปยัง/Library/Framework/geos.frameworkโฟลเดอร์

ฉันจะไปเกี่ยวกับการติดตั้ง GEOS, PROJ, GDAL / OGR เฉพาะลงใน pen virtualenv ใหม่ของฉันได้อย่างไร ฉันขอขอบคุณความช่วยเหลือ / ข้อเสนอแนะของคุณในเรื่องนี้

คำตอบ:


4

ถ้า Framework ของ Kyngchaos แต่ละอันอยู่ใน PATH มันเป็นเรื่องง่าย ทุกเฟรมเวิร์กมีโฟลเดอร์ Unix โดยมีไลบรารีสำหรับรวบรวมสิ่งต่าง ๆ เช่น pyproj หรือ geos python ทุกที่ที่คุณต้องการแม้แต่ในสภาพแวดล้อมแบบ Python ส่วนตัว (ฉันไม่เคยมีปัญหา)

ปัญหาเดียวก็คือ Gdal Python อยู่ใน Gdal Framework แต่ในแพ็คเกจไซต์จะมีไฟล์ gdal.pth

ไฟล์ gdal.pth:

import sys; sys.path.insert(0,'/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages')

หากคุณไม่ต้องการคอมไพล์ด้วยตัวเองให้คัดลอกไฟล์นี้ใน python virtualenv ของคุณเอง


มีการติดตั้งโครงการเหล่านั้นด้วยตนเองผ่านเครื่องมือติดตั้งของบุคคลที่สาม (fink / macports / อะไรก็ตาม) และผ่านวิธีการอื่นฉันจะรับประกันกับคุณว่าวิธีที่ดีที่สุดคือผ่าน Kynchaos! +1000
Ragi Yaser Burhum

@Ragi Yaser Burhum - ฉันเริ่มเห็นด้วยกับคุณแล้ว! ฉันพยายามใช้ Fink เพื่อติดตั้งการพึ่งพาที่จำเป็นเพื่อเรียกใช้ Cartopy ใน Python ฉันได้รับ: "OSError: ไม่พบ lib geos_c หรือโหลดตัวแปรใด ๆ " แม้ว่า libgeos_c.dylib จะอยู่ที่ /sw/opt/libgeos3.6.1/lib และฉันได้เพิ่มเส้นทางนั้นไปที่. bash_profile ฉันไม่คิดว่าคุณมีไข่มุกแห่งปัญญาบนพื้นฐานของประสบการณ์ของคุณกับตำรวจ?
user1718097

ใช้ @ Homebrew :)
Ragi Yaser Burhum

@RagiYaserBurhum ;-)
1718097

4

ฉันสร้างสภาพแวดล้อม Python / C / C ++ GIS ที่จำลองแบบได้โดยใช้ virtualenv และ zc.buildout ichpage ของฉันhttps://github.com/sgillies/ichpageโปรเจ็กต์เล็ก ๆ น้อย ๆ แต่สามารถทำหน้าที่เป็นเทมเพลตสำหรับอัปเดตล่าสุด (เช่นที่ฉันใช้สำหรับงานพัฒนาเว็บไซต์และการปรับใช้ Pleiades ของฉัน) บล็อกโพสต์เกี่ยวกับเรื่องนี้ที่http://sgillies.net/blog/856/i-can-has-python-and-gis-environments/


3

Virtualenv อนุญาตให้คุณจัดเตรียมสภาพแวดล้อมPythonส่วนตัวแต่ไม่ขยายไปยังไลบรารีระบบนอกจักรวาล Python แพ็กเกจทั้งสามที่คุณกล่าวถึงคือแอพพลิเคชั่น C / C ++ ทั้งหมดที่แกนกลางดังนั้นในขณะที่มีอินเทอร์เฟซสำหรับใช้กับ Python พวกเขาไม่สามารถทำแพ็กเกจได้โดยไม่ต้องโต้ตอบกับไลบรารี C (libc ขึ้นไป)

เนื่องจากความยากในการติดตั้งแพ็กเกจเหล่านั้นตั้งแต่เริ่มต้นโดยเฉพาะอย่างยิ่งใน OS X คุณอาจต้องการคิดเกี่ยวกับการใช้งานเครื่องเสมือน sandboxed โดยใช้บางอย่างเช่นVirtualBoxและติดตั้งแพ็คเกจผ่าน apt บนเครื่อง sandboxed นั้น: ในขณะเดียวกันก็สามารถทำได้เหมือนกัน OS X มันอาจไม่คุ้มค่ากับความพยายาม


นี่คือคำแนะนำที่ดี ฉันทำตามวิธีการนี้โดยใช้ฟิวชั่นไม่ใช่ VirtualBox แต่ฉันอาจลองใช้ Virtual Box ในครั้งต่อไป ฉันใช้ CentOS สำหรับระบบปฏิบัติการในกล่อง (ไม่ใช่ตัวเลือกระบบปฏิบัติการที่ดีที่สุดเนื่องจากความเสถียรและ Python เวอร์ชั่นเก่า ฯลฯ )
DavidF

3

หากคุณต้องการใช้ OSX คุณสามารถหลีกเลี่ยงความซับซ้อนในการติดตั้งได้อย่างง่ายดายโดยการติดตั้งhomebrew !

หลังจากนี้คำสั่งเดียวที่คุณจะต้องป้อนคือ:

brew install gdal

มันจะติดตั้งโดยอัตโนมัตินอกจากนี้ยังมีผลิตภัณฑ์และ geos เพราะพวกเขาเป็นที่พึ่งพา gdal


3
ฉันไม่เชื่อว่าที่อยู่นี้ปัญหาของการเข้าถึง gdal จากภายใน virtualenv (ฉันลองแล้วมันใช้งานไม่ได้)
djq

1
คุณสามารถใช้brew install gdalตราบเท่าที่คุณสร้าง venv ของคุณด้วย --system-site-packages ธงดูคำตอบของฉันที่นี่gis.stackexchange.com/a/345248/155269
88jayto

1

ฉันพบโพสต์บล็อกที่ดีที่ให้โซลูชันอื่นที่ทำงานในกรณีของฉัน:

http://linfiniti.com/2013/02/installing-python-gdal-into-a-python-virtualenv-in-osx/

ความแตกต่างเพียงอย่างเดียวกับโพสต์บล็อกคือฉันต้องทำคือดาวน์โหลด GDAL รุ่นที่ถูกต้องที่ตรงกับแพ็คเกจ kyngchaos ในกรณีของฉันฉันใช้ GDAL framework รุ่น 1.10 ดังนั้นการติดตั้งต่อไปนี้จึงสำเร็จ

source venv/bin/activate
pip install --no-install GDAL==1.10.0
cd venv/build/GDAL
python setup.py build_ext\
    --gdal-config=/Library/Frameworks/GDAL.framework/Versions/1.10/unix/bin/gdal-config\
    --library-dirs=/Library/Frameworks/GDAL.framework/Versions/1.10/unix/lib/\
    --include-dirs=/Library/Frameworks/GDAL.framework/Versions/1.10/Headers/

จากนั้นออกจากไดเรกทอรี GDAL และติดตั้งโดยไม่ต้องดาวน์โหลด

cd ~
pip install --no-download GDAL

UPDATE: คุณอาจต้องเพิ่ม env vars ก่อนที่จะโทรไปที่ setup.py เพื่อให้ขั้นตอนการรวบรวมทำงาน ( ดูคำถามนี้ )

export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments

0

คำตอบของ Yellowcap ข้างต้นทำงานให้ฉันด้วยการปรับแต่งเล็กน้อย:

pip install - no-install ไม่มีตัวเลือกอีกต่อไป ภายในไดเรกทอรี env:

pip download GDAL==1.11.2 (or whichever version you want)

เปิดเครื่องรูดไดเรกทอรีที่ดาวน์โหลดมาและ cd ลงไป:

tar -zxvf GDAL-1.11.2.tar.gz
cd GDAL-1.11.2

pip install - no-download ยังไม่มีตัวเลือกอีกต่อไป แทนที่จะอยู่ในไดเรกทอรี GDAL และเรียกใช้:

python setup.py build
python setup.py install

0

ตัวติดตั้ง NextGISได้แยก gdal, geos, proj และอื่น ๆ และการผูก python (Python 2.7) เป็น gdal การติดตั้งไม่ได้รับผลกระทบในไลบรารีระบบ (เฉพาะตัวแปรสภาพแวดล้อมหลายตัวใน bash_profile)

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