2017-02-16 210 views
0

我在运行python3的jupyter笔记本上的mac上。通过路线图上的项目推动自己学习更多python。NetworkX read_shp需要GDAL

我阅读shape文件像这样

import networkx as nx 
g = nx.read_shp('Road files/geo_export_4d537b7d-a470-4eb9-b147-1d0ea89e6b60.shp') 

,它的工作花花公子。

但是后来我读到OSMnx并认为“这真的很酷!我可以动态地拉取shapefile,而不是在线上追捕它们”。

所以我试图安装(pip install osmnx)但不断失败。所以我尝试了其他方法(conda install -c conda-forge osmnx)。现在

,我无法再运行我最初networkx read_shp因为这个错误的:

ImportError: read_shp requires OGR: http://www.gdal.org/ 

。我已经去了网站并安装了GDAL,但错误仍然存​​在。

我也不能导入osmnx。在 from fiona.ogrext import Iterator, ItemsIterator, KeysIterator由于

ImportError: dlopen(/Users/sb/anaconda/lib/python3.5/site-packages/fiona/ogrext.cpython-35m-darwin.so, 2): Library not loaded: @rpath/libjpeg.8.dylib 
    Referenced from: /Users/sb/anaconda/lib/libgdal.20.dylib 
    Reason: image not found 

1 \到底什么没我只是做我的环境,它的错误?

2 \如何恢复networkx功能?大概通过适当的GDAL(re?)安装。

3 \我如何准备osmnx?

对不起,这里的模糊开放性,我推动我的代码有点太过于我的能力。

更新 我跑conda config --add channels conda-forge并重新运行conda install gdalconda install libgdal

不幸的是我还是错误的,但它是一个不同的错误,声称networkx需要@中(应安装?)

/Users/sb/anaconda/lib/python3.6/site-packages/networkx/readwrite/nx_shp.py in read_shp(path, simplify) 

ImportError: read_shp requires OGR: http://www.gdal.org/ 

FWIW,/Users/sb/anaconda/lib/既有python3.6python3.5文件夹。

+0

FWIW,看起来我并不孤单:https://github.com/gboeing/osmnx/issues/25但是,按照这些步骤让我无处可去,我不确定我是否理解,但它似乎是“蟒蛇或conda-forge包装问题” – ScottieB

回答

1

一般情况下,您可能要避免混合conda channels。假设您的环境默认为defaults,然后您通过conda-forge通道安装了OSMnx。在实践中,它通常可以正常工作,但有时它可能会导致包装冲突,如您所看到的。

OSMnx documentation,你可以在一个干净的,专用的虚拟环境中安装,以确保它是孤立的:

conda create --yes -c conda-forge -n OSMNX python=3 osmnx 
source activate OSMNX 

如果仍然不工作,然后有确实与畅达锻问题打包您的平台和Python版本,在这种情况下,您应该在其conda-forge GitHub repo中打开一个问题。

最后,您可能还会考虑在您的anaconda设置中创建conda-forge最高优先级的通道。请检查您的.condarc文件并确保conda-forge频道位于defaults之上,因此优先。作为another answer别处所暗示的,也有使用康达锻信道,而不是由连续保持默认信道3个主要的原因:在康达锻

  1. 软件包可以是更先进的日期比上的默认值通道
  2. conda-forge通道上有一些软件包在默认情况下不可用
  3. 您更喜欢使用诸如openblas(来自conda-forge)而不是mkl(来自默认值)的依赖项。

Wes McKinney有similarly commented关于使用conda-forge的好处。

+0

感谢您的答案!我在/ Users/me,/ Users/me/anaconda或/ Users/me/anaconda/bin中看不到.condarc文件。这是自动创建的东西还是应该创建它? – ScottieB

+0

conda [文档](https://conda.io/docs/config.html#the-conda-configuration-file-condarc)讨论'.condarc'文件。 – eos

+0

另请参阅此[conda-forge PR](https://github.com/conda-forge/conda-forge.github.io/pull/325) – eos