在Mac OS X上将GEOS,PROJ,GDAL / OGR安装到python virtualenv中


12

我正在尝试设置一个隔离的python virtualenv来在Mac OS X上的GIS项目上工作。听起来我需要从kyngchaos站点(这里http://www.kyngchaos.com/软件/框架,而不是easy_install将其安装到我的virtualenv中。准确吗?

kyngchaos上可用的下载是pkg安装程序,而不仅仅是python模块的egg或bdist。因此,除了将文件复制到/Library/Framework/geos.framework文件夹之外,我不确定安装程序还会对环境做什么。

如何将特定版本的GEOS,PROJ,GDAL / OGR安装到新的python virtualenv中?感谢您在此问题上的帮助/建议。

Answers:


4

如果每个Kyngchaos框架都在PATH中,则很容易。每个框架都有一个Unix文件夹,其库用于在任何地方编译pyproj或geos python之类的东西,即使在私有Python环境中(我从来没有遇到过问题)

唯一的问题是Gdal python在Gdal框架中。但是在站点包中有一个文件gdal.pth

gdal.pth文件:

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

如果您不想自己编译它,请将此文件复制到隔离的python virtualenv中


通过第三方安装程序(fink / macports / whatever)以及其他方式手动安装了这些项目后,我将向您保证,最好的方法是通过Kynchaos!+1000
Ragi Yaser Burhum '02

@Ragi Yaser Burhum –我开始同意你的观点!我一直在尝试使用Fink安装必要的依赖项以在Python中运行Cartopy。我得到:“ OSError:找不到lib geos_c或加载其任何变体”,即使libgeos_c.dylib位于/sw/opt/libgeos3.6.1/lib,并且我已将该路径添加到.bash_profile中。我不认为您凭自己的芬奇经历就能拥有智慧的明珠?
user1718097

@use use Homebrew :)
Ragi Yaser Burhum

@RagiYaserBurhum ;-)
user1718097


3

Virtualenv允许您置备私有Python环境,但不能扩展到Python Universe之外的系统库。您提到的三个软件包都是C / C ++应用程序的核心,因此,尽管它们具有可与Python一起使用的接口,但如果不与C库进行交互(即打开libc),就不能打包它们。

由于很难从头开始安装这些软件包,尤其是在OS X上,因此您可能要考虑使用VirtualBox之类的工具运行沙盒虚拟机,并通过apt在该沙盒计算机上安装这些软件包:尽管可以在OS X,这可能不值得。


这是一个很好的建议。我使用Fusion而不是VirtualBox遵循这种方法,但是下次我可能会尝试Virtual Box。我在框中使用CentOS作为操作系统。(由于稳定的特性和较旧的Python等,因此不是最佳的操作系统选择)
DavidF 2011年

3

如果您需要使用OSX,则可以通过安装homebrew轻松避免安装复杂性!

之后,您只需输入以下命令:

brew install gdal

它还将自动安装proj和geos,因为它们是gdal依赖项。


3
我不认为这可以解决从virtualenv内部访问gdal的问题(我尝试过但没有用)
djq 2014年

1
您可以使用brew install gdal只要使用--system-site-packages标志创建venv,就可以在这里查看我的答案gis.stackexchange.com/a/345248/155269
88jayto

1

我找到了一篇不错的博客文章,提供了适用于我的情况的另一种解决方案:

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

与博客文章的唯一区别是,我必须做的是下载与kyngchaos软件包匹配的GDAL正确版本。就我而言,我使用的是GDAL框架版本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

更新:您可能必须在调用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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.