Osmnx ox.graph_from_place RuntimeError: b'no аргумент в списке инициализации ' - PullRequest
0 голосов
/ 18 апреля 2019

Я пытался запустить демо , но независимо от того, что я пытаюсь, я получаю RuntimeError: b'no arguments in initialization list', когда пытаюсь использовать ox.graph_from_place.Я искал несколько мест, но не нашел ответов. Я использую Windows 10, Python 3.7 и моя версия OSMNX 0.9.

Изучая проблему, с которой я столкнулся OSMnx graph_from_place # 251 , и я не совсем уверен, как "настроить среду так, чтобы она соответствовала пути на моей собственной машине", как сказано в нижней частистраницы проблемы, но она дала ссылку на установку OSMnx в виртуальной среде .Оттуда мне надоело удалять osmnx и conda install -c conda-forge osmnx (который отлично работает), а также conda config --add channels conda-forge, и я также пытался conda create --override-channels -c conda-forge -n OSMNX python=3 osmnx, но это дает мне

Collecting package metadata: done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - osmnx -> geopandas -> fiona -> gdal[version='>=2.4.1,<2.5.0a0'] -> libgdal==2.4.1=h47faea2_1 -> m2w64-xz
  - osmnx -> geopandas -> fiona -> gdal[version='>=2.4.1,<2.5.0a0'] -> libgdal==2.4.1=h47faea2_1 -> poppler[version='>=0.67.0,<0.68.0a0'] -> glib[version='>=2.58.2,<2.59.0a0'] -> gettext[version='>=0.19.8.1,<1.0a0'] -> libffi[version='>=3.2.1,<3.3.0a0'] -> m2w64-gcc-libs
  - osmnx -> geopandas -> mapclassify -> scipy
  - osmnx -> geopandas -> pysal -> seaborn -> statsmodels[version='>=0.5.0'] -> patsy[version='>=0.4.0']

Current channels:

  - https://conda.anaconda.org/conda-forge/win-64
  - https://conda.anaconda.org/conda-forge/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

Что я могу сделать, чтобы получить этоза работой?Может ли кто-нибудь рассказать о созданной документации по github?Или это другая проблема?

Код из демо-версии и отслеживания ошибок:

import networkx as nx
import osmnx as ox
import requests
import matplotlib.cm as cm
import matplotlib.colors as colors
ox.config(use_cache=True, log_console=True)
ox.__version__

G = ox.graph_from_place('Piedmont, California, USA', network_type='drive')
fig, ax = ox.plot_graph(G)

Отслеживание ошибок

Traceback (most recent call last):
  File "C:\Users\pablo\Documents\2019 Spring\Discreet Math\Project\new Dijstra.py", line 9, in <module>
    G = ox.graph_from_place('Piedmont, California, USA', network_type='drive')
  File "C:\ProgramData\Anaconda3\lib\site-packages\osmnx\core.py", line 1879, in graph_from_place
    custom_filter=custom_filter)
  File "C:\ProgramData\Anaconda3\lib\site-packages\osmnx\core.py", line 1743, in graph_from_polygon
    polygon_utm, crs_utm = project_geometry(geometry=polygon)
  File "C:\ProgramData\Anaconda3\lib\site-packages\osmnx\projection.py", line 53, in project_geometry
    gdf_proj = project_gdf(gdf, to_crs=to_crs, to_latlong=to_latlong)
  File "C:\ProgramData\Anaconda3\lib\site-packages\osmnx\projection.py", line 119, in project_gdf
    projected_gdf = gdf.to_crs(utm_crs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\geopandas\geodataframe.py", line 443, in to_crs
    geom = df.geometry.to_crs(crs=crs, epsg=epsg)
  File "C:\ProgramData\Anaconda3\lib\site-packages\geopandas\geoseries.py", line 304, in to_crs
    proj_in = pyproj.Proj(self.crs, preserve_units=True)
  File "C:\ProgramData\Anaconda3\lib\site-packages\pyproj\__init__.py", line 362, in __new__
    return _proj.Proj.__new__(self, projstring)
  File "_proj.pyx", line 129, in _proj.Proj.__cinit__
RuntimeError: b'no arguments in initialization list'

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Вы сталкиваетесь с разными ошибками:

  1. Установка Osmnx
  2. Ошибка времени выполнения PyProj

Osmnx

Непонятно, какие шаги вы предприняли для установки osmnx (сначала вы установили его, затем добавили conda-forge, но это должно было быть наоборот), но, как вы можете видеть, ваши текущие каналы выиграли. 64 и noarch не имеют зависимостей геопанд, поэтому я думаю, что вам нужно снова запустить conda config --add channels conda-forge, а затем переустановить osmnx (вам больше не нужен --override-channel, поскольку, добавив conda-forge, вы повысили его приоритет)

PyProj Ваш RuntimeError: b'no arguments in initialization list' может быть обработан, установив переменную окружения PROJ_LIB в соответствии с путем на вашем собственном компьютере, как вы видели по указанной вами ссылке. Это означает, что вы должны указать точный путь к \ Library \ share, который связан с вашей виртуальной средой, когда ваш проект действительно существует. Представьте, что вы работаете в "project_osmnx", тогда вы должны установить

import os
os.environ["PROJ_LIB"] = "C:\Anaconda\envs\project_osmnx\Library\share"

Если вы не знакомы с окружением conda или не знаете, как его создать, проверьте эту ссылку

0 голосов
/ 06 мая 2019

Похоже, вы уже установили osmnx, в противном случае вы получите сообщение об ошибке:

ModuleNotFoundError: нет модуля с именем osmnx

У меня была такая же ошибка, и решение, предложенное Якопо, сработало для меня. Просто установите переменную окружения PROJ_LIB.

...