我在使用IPython Notebook时无法执行pyproj,但在powershell中使用Python时却无法执行。

IPython引发以下错误:

RuntimeError                              Traceback (most recent call last)
<ipython-input-59-384a2e8bfd70> in <module>()
----> 1 inproj = pyproj.Proj(init='epsg:3857')

C:\Anaconda64\lib\site-packages\pyproj\__init__.pyc in __new__(self, projparams, preserve_units, **kwargs)
    345                 else:
    346                     kvpairs.append(kvpair+' ')
--> 347             projstring = ''.join(kvpairs)
    348         # look for EPSG, replace with epsg (EPSG only works
    349         # on case-insensitive filesystems).

_proj.pyx in _proj.Proj.__cinit__ (_proj.c:1190)()

RuntimeError: Invalid argument

这个问题类似于https://github.com/jswhit/pyproj/issues/17指出的问题,但我不明白代码在命令行中的运行情况。您知道我如何使pyproj正常工作吗?我正在使用Windows(64位),conda版本:3.18.6和python版本:2.7.10。

如果有帮助,则在ipython Notebook上pyproj.pyproj_datadir的输出为'C:\x07root\\stage\\Library\\share\\proj',而在命令提示符下为'C:\\Anaconda64\\lib\\site-packages\\pyproj\\data'

谢谢!

我使用的工作示例来自https://gis.stackexchange.com/questions/78838/how-to-convert-projected-coordinates-to-lat-lon-using-python/78944#78944
from pyproj import Proj, transform

inProj = Proj(init='epsg:3857')
outProj = Proj(init='epsg:4326')
x1,y1 = -11705274.6374,4826473.6922
x2,y2 = transform(inProj,outProj,x1,y1)
print x2,y2

最佳答案

我也在miniconda下的Windows 10(64位)中运行Python 2.7.11时遇到此错误。我的pyproj版本是1.9.4(由运行conda list确定)。在您提到的link上提出了几种解决方案:

  • 从anaconda.org上的JimInCO channel 将pyproj降级到v1.9.3。这不适用于我的环境-我找不到任何合适的v1.9.3软件包。看起来那里可能有一些Python 3产品。
  • 定义一个名为PROJ_DIR的环境变量,该变量将pyproj指向其投影文件的正确位置。您必须首先确定epsg文件的位置。
  • 这是对我有用的解决方案。使用pip install the_file.whlChristoph Gohlke's site中获取一个whl文件。使用这种方法,我获得了pyproj v1.9.5,可以正常工作。
  • 关于python - pyproj无法在ipython上运行(但可在CLI上运行),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34031362/

    10-12 04:04