cài đặt GEOS, PROJ, GDAL / OGR vào một ảo ảo python trên Mac OS X


12

Tôi đang cố gắng thiết lập một ảo ảo python bị cô lập để hoạt động trên các dự án GIS trên Mac OS X. Âm thanh như tôi sẽ cần phải cài đặt GEOS, PROJ, GDAL / OGR từ trang web kyngchaos tại đây http://www.kyngchaos.com/ phần mềm / khung và không dễ dàng cài đặt nó vào virtualenv của tôi. Điều đó có chính xác không?

Các bản tải xuống có sẵn trên kyngchaos là các trình cài đặt pkg và không chỉ là một quả trứng hay bdist của các mô-đun python. Vì vậy, tôi không chắc lắm về việc trình cài đặt đang làm gì với môi trường ngoài việc sao chép các tập tin vào /Library/Framework/geos.frameworkthư mục.

Làm cách nào để cài đặt một phiên bản cụ thể của GEOS, PROJ, GDAL / OGR vào virtualenv python mới của tôi? Tôi sẽ đánh giá cao sự giúp đỡ / đề xuất của bạn về vấn đề này.

Câu trả lời:


4

Nếu mỗi Khung của Kyngchaos nằm trong PATH thì thật dễ dàng. Mọi khung công tác đều có thư mục Unix, với các thư viện để biên dịch những thứ như pyproj hoặc geos python bất cứ nơi nào bạn muốn, ngay cả trong môi trường Python riêng tư (tôi chưa bao giờ gặp sự cố)

Vấn đề duy nhất là trăn gấm nằm trong Khung gầm. Nhưng trong gói trang web có tệp gdal.pth

tập tin gdal.pth:

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

nếu bạn không muốn tự biên dịch nó, hãy sao chép tệp này vào virtualenv python bị cô lập của bạn


đã cài đặt các dự án đó bằng tay, thông qua các trình cài đặt của bên thứ 3 (fink / macports / bất cứ điều gì) và thông qua các phương tiện khác tôi sẽ đảm bảo với bạn rằng cách tốt nhất là thông qua Kynchaos! +1000
Ragi Yaser Burhum

@Ragi Yaser Burhum - Tôi bắt đầu đồng ý với bạn! Tôi đã cố gắng sử dụng Fink để cài đặt các phụ thuộc cần thiết để chạy Cartopy trong Python. Tôi đang nhận được: "OSError: Không thể tìm thấy lib geos_c hoặc tải bất kỳ biến thể nào của nó" mặc dù libgeos_c.dylib có tại /sw/opt/libgeos3.6.1/lib và tôi đã thêm đường dẫn đó vào .bash_profile. Tôi không cho rằng bạn có viên ngọc khôn ngoan nào dựa trên kinh nghiệm của bạn với fink?
dùng1718097

@ sử dụng Homebrew :)
Ragi Yaser Burhum

@RagiYaserBurhum ;-)
dùng1718097

4

Tôi tạo các môi trường GIS Python / C / C ++ có thể nhân rộng bằng cách sử dụng virtualenv và zc.buildout. Dự án ichpage của tôi https://github.com/sgillies/ichpage có một ít ngày nhưng có thể đóng vai trò là khuôn mẫu cho một bản cập nhật (như dự án tôi sử dụng cho công việc phát triển và triển khai trang web của Pleiades). Bài đăng trên blog về nó tại http://sgillies.net/blog/856/i-can-has-python-and-gis-envirments/ .


3

Virtualenv cho phép bạn cung cấp một môi trường Python riêng , nhưng không mở rộng ra các thư viện hệ thống bên ngoài vũ trụ Python. Ba gói bạn đã đề cập là tất cả các ứng dụng C / C ++, vì vậy trong khi chúng có giao diện để sử dụng với Python, chúng không thể được đóng gói mà không tương tác với các thư viện C (libc trở lên).

Do khó khăn trong việc cài đặt các gói đó từ đầu, đặc biệt là trên OS X, bạn có thể muốn nghĩ về việc chạy một máy ảo có hộp cát bằng cách sử dụng một cái gì đó như VirtualBox và cài đặt các gói thông qua apt trên máy được hộp cát đó: trong khi có thể thực hiện tương tự OS X, nó có lẽ không đáng để cố gắng.


Đây là một khuyến nghị tốt. Tôi đã làm theo cách tiếp cận này bằng Fusion, không phải VirtualBox, nhưng tôi có thể thử Virtual Box vào lần tới. Tôi đã sử dụng CentOS cho hệ điều hành trong hộp. (Không phải sự lựa chọn hệ điều hành tốt nhất do tính chất ổn định và các phiên bản cũ hơn của Python, v.v.)
DavidF

3

Nếu bạn cần sử dụng OSX, bạn có thể dễ dàng tránh sự phức tạp khi cài đặt bằng cách cài đặt homebrew !

Sau đó, các lệnh duy nhất bạn cần nhập là:

brew install gdal

Nó sẽ tự động cài đặt proj và geos vì chúng là các phụ thuộc gdal.


3
Tôi không tin điều này giải quyết vấn đề truy cập gdal từ trong virtualenv (Tôi đã thử và nó không hoạt động)
djq

1
bạn có thể sử dụng brew install gdalmiễn là bạn tạo venv của mình với cờ --system-site-gói, xem câu trả lời của tôi ở đây gis.stackexchange.com/a/345248/155269
88jayto

1

Tôi tìm thấy một bài viết blog tốt cung cấp một giải pháp khác hoạt động trong trường hợp của tôi:

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

Sự khác biệt duy nhất cho bài đăng trên blog là tôi phải làm là tải xuống phiên bản chính xác của GDAL phù hợp với các gói kyngchaos. Trong trường hợp của tôi, tôi đã sử dụng khung GDAL phiên bản 1.10, vì vậy cài đặt sau đã thành công

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/

Sau đó rời khỏi thư mục GDAL và cài đặt mà không cần tải xuống

cd ~
pip install --no-download GDAL

CẬP NHẬT: Bạn có thể phải thêm một số vars env trước khi gọi setup.py để bước biên dịch hoạt động ( xem câu hỏi này )

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

0

Câu trả lời của Yellowcap ở trên đã có hiệu quả với tôi với một số điều chỉnh nhỏ:

cài đặt pip - không cài đặt không còn là một tùy chọn. Thay vào đó, bên trong thư mục env:

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

Giải nén thư mục đã tải xuống và cd vào nó:

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

cài đặt pip - không tải xuống cũng không còn là một tùy chọn. Thay vào đó hãy ở trong thư mục GDAL và chạy:

python setup.py build
python setup.py install

0

Trình cài đặt NextGIS có các ràng buộc gdal, geos, proj, v.v. và python (Python 2.7) với gdal. Cài đặt không bị ảnh hưởng trên các thư viện hệ thống (chỉ một số biến môi trường trong bash_profile).

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.