RuntimeError: b'no arguments in initialization list'

雨燕双飞 提交于 2019-12-07 07:32:54

问题


I'm trying to solve my issue in my own but I couldn't, I'm trying to run this code in every format you can imagine and in ArcGIS pro software it's the same I can't find this error message in any other issue. From similar issues, it seems some data files could be missing?

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'})

i get this error

RuntimeError: b'no arguments in initialization list'

also i tried it in arcgis pro i got the same

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'

回答1:


Is there an initial crs defined? I ran into the same problem only when I passed only the epsg command: gdf.to_crs('epsg:4326').

As you show

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

should be the first step and then transforming to

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

If you are working in ArcGIS you could also check in the properties whether the initial epsg is defined ?

great that was the answer thank you




回答2:


to make sure this is pyproj error rather than geopandas.

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

if the above runtime error is the same, we can be sure this error is due to pyproj.

just conda remove pyproj and install it with pip.

pip install pyproj

at least this works for me.

Today(July 30), I resintalled from miniconda, conda remove pyproj did not work for me, instead I pip uninstall pyproj and pip install pyproj makes everything fine.




回答3:


The problem is problably within the pyproj instalation of Anaconda on Windows platform. Just like Stephen said, solution is to edit the path in "datadir.py" (located in ...Anaconda3\Lib\site-packages\pyproj).

Correct path is ".../Anaconda3/Library/share". Make sure full path is complete (may contain username etc.). I also needed to change \ to /. This change worked for me. Yes and after this change, it is necesary to restart Spyder (or whatever you use).




回答4:


I'm using Pycharm. I had to use a combination of both Stone Shi's remark and Dorregaray's.

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

According to Stone Shi, the above proves that it's a pyproj err. So I used Pycharm->Settings and reinstalled pyproj. Then

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

So, it's a pyproj err but Pycharm->Settings reinstalling pyproj does not help me.

I then edited my C:\Anaconda3\Lib\site-packages\pyproj\datadir.py from:

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

to Dorregaray's:

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

Then test again:

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

No Runtime Error!

Then test on my

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


来源:https://stackoverflow.com/questions/55390492/runtimeerror-bno-arguments-in-initialization-list

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!