2017-02-16 41 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