2017-08-27 273 views
2

操作系统:Windows“无法找到或加载spatialindex_c.dll”在Windows中?

版本:蟒蛇3.6

我成功安装osmnx和RTREE。但仍然有错误。

我的代码:

> import osmnx as ox 
> from Ipython.display import Image 

> ox.config(log_file=True,log_console=True,use_cache=True) 
> 
> img_folder='image'; extension='png'; size=700 
> 
> place='shanghai' point=(121.48,31.22) > 
> fig,ax=ox.plot_figure_ground(point=point,filename=place,network_type='all',dpi=150) 
> Image('{}/{}.{}'.fromat(img_folder,place,extension),height=size,width=size) 

raise OSError("could not find or load spatialindex_c.dll")

OSError: could not find or load spatialindex_c.dll

这是什么意思,是什么原因导致它,你又该如何解决?

回答

2

这意味着你只能认为你已经成功安装osmnx或它的一个依赖项。

当然很大程度上取决于如何安装osmnx - 当我在它与失败对我来说是虚拟环境PIP尝试:

Collecting OSMnx 
    Downloading osmnx-0.5.3-py2.py3-none-any.whl (54kB) 
    100% |████████████████████████████████| 61kB 183kB/s 
Collecting shapely>=1.5 (from OSMnx) 
    Downloading Shapely-1.6.0.tar.gz (214kB) 
    100% |████████████████████████████████| 215kB 2.0MB/s 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 
     File "<string>", line 1, in <module> 
     File "C:\Users\STEVE-~1\AppData\Local\Temp\pip-build-9uqvlpcm\shapely\setup.py", line 80, in <module> 
     from shapely._buildcfg import geos_version_string, geos_version, \ 
     File "C:\Users\STEVE-~1\AppData\Local\Temp\pip-build-9uqvlpcm\shapely\shapely\_buildcfg.py", line 200, in <module> 
     lgeos = CDLL("geos_c.dll") 
     File "C:\Python36_64\lib\ctypes\__init__.py", line 344, in __init__ 
     self._handle = _dlopen(self._name, mode) 
    OSError: [WinError 126] The specified module could not be found 

    ---------------------------------------- 
Command "python setup.py egg_info" failed with error code 1 in C:\Users\STEVE-~1\AppData\Local\Temp\pip-build-9uqvlpcm\shapely\ 

http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely给了我一个下载蟒蛇我使用3.6(64位)我通过下载安装,然后在下载的文件上使用pip。

重新运行pip install OSMnx我的下一个问题是与菲奥娜的编译,所以克里斯Gohlke救援再次http://www.lfd.uci.edu/~gohlke/pythonlibs/#fiona其中有一个音符“要求@中”,所以我跳上到http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal而我在那里并安装了第一。

上运行的第一个导入我:

>>> import osmnx as ox 
Traceback (most recent call last): 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\numpy\core\__init__.py", line 16, in <module> 
    from . import multiarray 
ImportError: DLL load failed: The specified procedure could not be found. 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\osmnx\__init__.py", line 8, in <module> 
    from .buildings import * 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\osmnx\buildings.py", line 9, in <module> 
    import geopandas as gpd 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\geopandas\__init__.py", line 1, in <module> 
    from geopandas.geoseries import GeoSeries 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\geopandas\geoseries.py", line 5, in <module> 
    import numpy as np 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\numpy\__init__.py", line 142, in <module> 
    from . import add_newdocs 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\numpy\add_newdocs.py", line 13, in <module> 
    from numpy.lib import add_newdoc 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\numpy\lib\__init__.py", line 8, in <module> 
    from .type_check import * 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\numpy\lib\type_check.py", line 11, in <module> 
    import numpy.core.numeric as _nx 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\numpy\core\__init__.py", line 26, in <module> 
    raise ImportError(msg) 
ImportError: 
Importing the multiarray numpy extension module failed. Most 
likely you are trying to import a failed build of numpy. 
If you're working with a numpy git repo, try `git clean -xdf` (removes all 
files not under version control). Otherwise reinstall numpy. 

Original error was: DLL load failed: The specified procedure could not be found. 

我已经注意到,它似乎是numpy的已安装正确,但我知道,有可能是与它的问题,以便关闭以http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy,我们找到一张纸条: “Numpy + MKL链接到英特尔®数学内核库,并在numpy.core目录中包含所需的DLL。”所以我再次下载并安装。

现在,我在你的阶段:

> import osmnx as ox 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\osmnx\__init__.py", line 8, in <module> 
    from .buildings import * 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\osmnx\buildings.py", line 9, in <module> 
    import geopandas as gpd 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\geopandas\__init__.py", line 1, in <module> 
    from geopandas.geoseries import GeoSeries 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\geopandas\geoseries.py", line 16, in <module> 
    from geopandas.base import GeoPandasBase 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\geopandas\base.py", line 15, in <module> 
    from rtree.core import RTreeError 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\rtree\__init__.py", line 1, in <module> 
    from .index import Rtree 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\rtree\index.py", line 5, in <module> 
    from . import core 
    File "F:\toolbuild\test_OSMnx\lib\site-packages\rtree\core.py", line 116, in <module> 
    raise OSError("could not find or load spatialindex_c.dll") 
OSError: could not find or load spatialindex_c.dll 

看起来问题出在RTREE等客到http://www.lfd.uci.edu/~gohlke/pythonlibs/#rtree(注意,这时候我们要pip uninstall rtree第一)

尝试你的代码,添加了一对换行符,再次出现一个错误,即超过lat长限制,因此调换两个值来设置point=(31.22, 121.48),我得到一个图像,例如: enter image description here

>>> fig,ax=ox.plot_figure_ground(point=point,filename=place,network_type='all',dpi=150) 
Projected the GeoDataFrame "geometry to project" to UTM-51 in 0.00 seconds 
Projected the GeoDataFrame "geometry to project" to EPSG 4326 in 0.00 seconds 
Created bounding box 966.0 meters in each direction from (31.22, 121.48): 31.228713053594067,31.211286934028642,121.49013858668467,121.46986147388169 
Projected the GeoDataFrame "geometry to project" to UTM-51 in 0.00 seconds 
Projected the GeoDataFrame "geometry to project" to EPSG 4326 in 0.00 seconds 
Requesting network data within bounding box from API in 1 request(s) 
Pausing 0.00 seconds before making API POST request 
Posting to http://www.overpass-api.de/api/interpreter with timeout=180, "{'data': '[out:json][timeout:180];(way["highway"]["area"!~"yes"]["highway"!~"proposed|construction|abandoned|platform|raceway"]["service"!~"private"]["access"!~"private"](31.21128693,121.46986147,31.22871305,121.49013859);>;);out;'}" 
Downloaded 480.6KB from www.overpass-api.de in 2.13 seconds 
Saved response to cache file "cache/8c99e35743a557d7234621c6d3fd7139.json" 
Got all network data within bounding box from API in 1 request(s) and 2.99 seconds 
Creating networkx graph from downloaded OSM data... 
Graph was not connected, retained only the largest weakly connected component (3,366 of 3,540 total nodes) in 0.15 seconds 
Created graph with 3,366 nodes and 6,926 edges in 0.19 seconds 
Added edge lengths to graph in 0.05 seconds 
Truncated graph by bounding box in 0.14 seconds 
Removed 0 isolated nodes 
Graph was not connected, retained only the largest weakly connected component (2,764 of 2,779 total nodes) in 0.13 seconds 
graph_from_bbox() returning graph with 2,764 nodes and 5,892 edges 
graph_from_point() returning graph with 2,764 nodes and 5,892 edges 
Begin topologically simplifying the graph... 
Identified 1,568 edge endpoints in 0.04 seconds 
Constructed all paths to simplify in 0.01 seconds 
Simplified graph (from 2,764 to 1,568 nodes and from 5,892 to 3,730 edges) in 0.15 seconds 
Created a GeoDataFrame from graph in 0.10 seconds 
Projected the GeoDataFrame "unnamed_nodes" to UTM-51 in 0.07 seconds 
Projected the GeoDataFrame "unnamed_edges" to UTM-51 in 0.29 seconds 
Extracted projected node geometries from GeoDataFrame in 0.04 seconds 
Rebuilt projected graph in 1.53 seconds 
Projected the GeoDataFrame "geometry to project" to UTM-51 in 0.00 seconds 
Created bounding box 805 meters in each direction from (31.22, 121.48) and projected it: 3455784.445871858,3454174.445871858,356022.8750159489,354412.8750159489 
Begin plotting the graph... 
Drew the graph edges in 0.05 seconds 
Saved the figure to disk in 0.11 seconds 
+0

这是伟大的!谢谢您的回答,我另谋出路,只是用“康达安装-c畅达锻osmnx”。 – zara

0

如果您使用蟒蛇,安装OSMnx,避免这一问题的最简单的方法是用康达锻,如the docs说:

conda install -c conda-forge osmnx 

或者,为安装创建一个新的,干净的虚拟环境:

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

或者,add畅达,伪造为永久通道畅达,然后安装:

conda config --add channels conda-forge 
conda install osmnx 
相关问题