RuntimeError: b'no arguments in initialization list'

RuntimeError: b'no arguments in initialization list'

我正在尝试自己解决我的问题,但我做不到,我正在尝试 运行 以您可以想象的各种格式编写此代码,而在 ArcGIS pro 软件中,我可以这样做' 在任何其他问题中找到此错误消息。从类似的问题来看,好像有一些数据文件丢失了?

import geopandas as gpd
import json
import numpy as np
from shapely.geometry import LineString, Point, box
import ast
from pyproj import Proj
paths = road_features.SHAPE.map(lambda x: np.array(ast.literal_eval(x)["paths"][0]))
pathLineStrings = paths.map(LineString)
gdf = gpd.GeoDataFrame(road_features,geometry=pathLineStrings)
#gdf.crs = {'init': 'epsg:3857'}
gdf.crs = {'init': 'epsg:4326'}
gdf = gdf.to_crs({'init': 'epsg:4326'})

我收到这个错误

RuntimeError: b'no arguments in initialization list'

我也在 arcgis pro 中试过,结果一样

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Lib\site-packages\geopandas\geodataframe.py", line 443, in to_crs
    geom = df.geometry.to_crs(crs=crs, epsg=epsg)
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Lib\site-packages\geopandas\geoseries.py", line 304, in to_crs
    proj_in = pyproj.Proj(self.crs, preserve_units=True)
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\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'

是否定义了首字母crs? 我 运行 只有当我只通过 epsg 命令时才会遇到同样的问题:gdf.to_crs('epsg:4326').

如你所见

my_geoseries.crs = {'init' :'epsg:3857'}

应该是第一步然后运行形成

gdf = gdf.to_crs({'init': 'epsg:4326'})

如果您在 ArcGIS 中工作,您还可以检查属性是否定义了初始 epsg?

确保这是 pyproj 错误而不是 geopandas。

import pyproj
pyproj.Proj("+init=epsg:4326")

如果上述运行时错误相同,我们可以确定这个错误是由于pyproj引起的。

只需 conda remove pyproj 并使用 pip 安装即可。

pip install pyproj

至少这对我有用。

今天(7 月 30 日),我从 miniconda 重新安装,conda remove pyproj 对我不起作用,相反我 pip uninstall pyprojpip install pyproj 一切正常。

问题可能出在 Windows 平台上 Anaconda 的 pyproj 安装中。正如 Stephen 所说,解决方案是编辑 "datadir.py" 中的路径(位于 ...Anaconda3\Lib\site-packages\pyproj)。

正确的路径是“.../Anaconda3/Library/share”。确保完整路径完整(可能包含用户名等)。我还需要将 \ 更改为 /。 这种变化对我有用。是的,在此更改之后,需要重新启动 Spyder(或您使用的任何东西)。

我正在使用 Pycharm。 我不得不结合使用 Stone Shi 的评论和 Dorregaray 的评论。

import pyproj
pyproj.Proj("+init=epsg:4326")
> RuntimeError: b'no arguments in initialization list'

按照石头石的说法,以上证明是pyproj错误。 所以我使用了 Pycharm->Settings 并重新安装了 pyproj。 那么

import pyproj
pyproj.Proj("+init=epsg:4326")
> RuntimeError: b'no arguments in initialization list'

所以,这是一个 pyproj 错误 但是 Pycharm->设置重新安装 pyproj 对我没有帮助。

然后我编辑了我的 C:\Anaconda3\Lib\site-packages\pyproj\datadir.py 来自:

pyproj_datadir="C:/Anaconda3\share\proj"

多瑞加雷的:

pyproj_datadir="C:\Anaconda3\Library\share"

然后再测试:

import pyproj
pyproj.Proj("+init=epsg:4326")
>Process finished with exit code 0

没有运行时错误!

然后在我的

上测试
wgs84  = data.to_crs({'init': 'epsg:4269'})
>Process finished with exit code 0

使用 Geopandas,尝试一下(应该可以):

gdf = gpd.GeoDataFrame(gdf, geometry=gdf['geometry'])
gdf.crs = {'init' :'epsg:2154'}
gdf = gdf.to_crs({'init' :'epsg:4326'}) 

你应该重新定义好你的geodataframe, 然后定义初始地理参考 最后把它转换成好的。 如果有的话,别忘了去掉 NaN。

我遇到了同样的错误。我正在使用 Python 版本 3.6.3 和 Geopandas 版本 0.4.0。它是通过使用以下而不是 df = df.to_crs({'init': 'epsg:4326'}):

解决的
df = df.to_crs(epsg=4326)

我升级 pyprojgeopandas,解决了这个问题:

pip install pyproj --upgrade 
pip install geopandas --upgrade 

您可以直接使用

从 pip 强制重新安装 pyproj

pip install --upgrade --force-reinstall pyproj

而不是卸载并重新安装,这也会卸载所有依赖库