首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Anaconda python中安装pyproj (Ubuntu)

在Anaconda python中安装pyproj (Ubuntu)
EN

Stack Overflow用户
提问于 2019-03-15 00:15:59
回答 2查看 3.6K关注 0票数 0

我正在尝试在Ubuntu 16.04上运行anaconda python 2.7.15的远程服务器上安装pyproj。运行conda install -c conda-forge pyproj (https://anaconda.org/conda-forge/pyproj中第一个列出的选项)后,包安装成功(pyproj2.0.2)。然而,在运行我的程序时,我得到了以下回溯:

代码语言:javascript
复制
Traceback (most recent call last):
  File "run_qc_worker.py", line 1288, in <module>
    GC.make_metadata_caches() # For percentiles check
  File "/home/ubuntu/qc-mem/qc/lib/global_class.py", line 384, in make_metadata_caches
    mercator_arr = self.proj_arr(lat_lon_arr) # project to x/y
  File "/home/ubuntu/qc-mem/qc/lib/global_class.py", line 421, in proj_arr
    inproj = Proj(init='epsg:4326') # WGS 84
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/pyproj/__init__.py", line 322, in __init__
    self.crs = CRS.from_user_input(projparams if projparams is not None else kwargs)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/pyproj/crs.py", line 224, in from_user_input
    return cls(**value)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/pyproj/crs.py", line 146, in __init__
    super(CRS, self).__init__(projstring)
  File "pyproj/_crs.pyx", line 307, in pyproj._crs._CRS.__init__
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/pyproj/datadir.py", line 62, in get_data_dir
    "Valid PROJ.4 data directory not found."
pyproj.exceptions.DataDirError: Valid PROJ.4 data directory not found.Either set the path using the environmental variable PROJ_LIB or with `pyproj.datadir.set_data_dir`.

在我的python脚本中,我使用from pyproj import Proj, transform导入,相关的代码行如下:

代码语言:javascript
复制
inproj = Proj(init='epsg:4326') # WGS 84
outproj = Proj(init='epsg:3857') # WGS 84 / Pseudo-Mercator

显然,pyproj无法找到data目录。搜索~/anaconda2/lib/python2.7/site-packages/pyproj上的目录,我确认没有data目录。我还有另一台服务器,在anaconda3上安装了pyproj,其中包含一个data目录(带有一个epsg文件)。我将此目录复制到anaconda2服务器,并按照回溯中的说明使用环境变量声明路径:

代码语言:javascript
复制
export PROJ_LIB=~/anaconda2/lib/python2.7/site-packages/pyproj/data

我仍然得到相同的错误回溯。

我在github repo上找不到pyproj (https://github.com/pyproj4/pyproj/)的data目录。

如何解决此错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-15 20:57:09

我可以通过安装以前版本的pyproj来解决这个问题。我通过运行conda install -c conda-forge/label/gcc7 pyprojpyproj-2.0.2安装替换为pyproj-1.9.6。(作为此安装的一部分,proj4也从6.0.0降级为5.2.0 )。这是https://anaconda.org/conda-forge/pyproj上列出的第二个可用的conda安装选项。

如上所述,我还从另一台服务器上的anaconda3安装中手动复制(scp)了一个现有的data目录,然后将PROJ_LIB环境变量与路径一起导出到data目录。

请注意,在将路径导出到data之前运行pyproj-1.9.6时,错误回溯将指示RuntimeError: 'no arguments in initialization list'。这里的其他用户已经很好地描述了这个问题:https://github.com/pyproj4/pyproj/issues/134

票数 0
EN

Stack Overflow用户

发布于 2019-06-10 08:27:37

当前版本的pyproj 2.2.0适用于我:

代码语言:javascript
复制
(base) $ conda create -c conda-forge -n proj27 python=2.7 pyproj
...
  proj4              conda-forge/linux-64::proj4-6.1.0-he751ad9_2
  pyproj             conda-forge/linux-64::pyproj-2.2.0-py27hc44880f_0
...
(base) snowal@snowal-lx2:~$ conda activate proj27
(proj27) snowal@snowal-lx2:~$ python
Python 2.7.15 | packaged by conda-forge | (default, Feb 28 2019, 04:00:11) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
代码语言:javascript
复制
>>> from pyproj import Proj, transform
>>> inproj = Proj(init='epsg:4326') # WGS 84
>>> outproj = Proj(init='epsg:3857') # WGS 84 / Pseudo-Mercator
>>> import pyproj
>>> pyproj.__version__
'2.2.0'
代码语言:javascript
复制
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55167359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档