Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何使用pip安装地图/绘图库cartopy和basemap_Python 2.7_Gis_Gdal_Matplotlib Basemap_Cartopy - Fatal编程技术网

Python 2.7 如何使用pip安装地图/绘图库cartopy和basemap

Python 2.7 如何使用pip安装地图/绘图库cartopy和basemap,python-2.7,gis,gdal,matplotlib-basemap,cartopy,Python 2.7,Gis,Gdal,Matplotlib Basemap,Cartopy,我知道在安装cartopy和basemap之前需要满足一些依赖关系。我用pip(比如numpy等等)把它们分类 我发现项目4存在一些cartopy问题,而GEOS存在一些basemap问题。 我认为对java Proj.4的Python绑定已经足够了,我对C++库GEOS有点迷茫(我认为GDAL足够用于GEOS,我已经这样把它与Python世界联系起来了: PIP-West-Global Opvest= BuudEXEXT——全局选项=“-I/Ur/IOR/GDAL”GDAL==GDAL配置-V

我知道在安装cartopy和basemap之前需要满足一些依赖关系。我用
pip
(比如
numpy
等等)把它们分类

我发现项目4存在一些cartopy问题,而GEOS存在一些basemap问题。 我认为对java Proj.4的Python绑定已经足够了,我对C++库GEOS有点迷茫(我认为GDAL足够用于GEOS,我已经这样把它与Python世界联系起来了:<代码> PIP-West-Global Opvest= BuudEXEXT——全局选项=“-I/Ur/IOR/GDAL”GDAL==GDAL配置-VIS/P> 我宁愿避免所有这些事情,如蟒蛇,树冠等。 如果可能的话,我只想在Ubuntu(
apt get
,只有在
pip
还不够的情况下)和Mac OSX上使用
pip
(只有在
pip
还不够的情况下,我才想使用
pip

cartopy被太旧的Proj.4版本卡住了。
pip
输出显示:
Proj4 4.8.0版已经安装,但cartopy至少需要4.9.0版。
。 我假设python绑定的这个
pip
安装就足够了,但它并不能解决问题:

$ pip show pyproj
Name: pyproj
Version: 1.9.5.1
Summary: Python interface to PROJ.4 library
Home-page: https://github.com/jswhit/pyproj
Author: Jeff Whitaker
Author-email: jeffrey.s.whitaker@noaa.gov
License: OSI Approved
Location: /usr/local/lib/python2.7/dist-packages
Requires: 
我不明白为什么Proj.4的python绑定是不够的,即使这些绑定是使用
pip
提供的最新版本

底图以不同方式卡住:

  • 使用
    pip2安装basemap
    不知何故,我得到
    找不到满足需求basemap的版本(来自版本:)
    找不到与basemap匹配的分发
    
  • 但从basemap文档中,我发现由于某种原因,库没有链接到
    pip
    存储库,需要从源代码安装。所以我运行了:
    pip2安装https://github.com/matplotlib/basemap/archive/v1.0.7rel.tar.gz<代码> >我相信C++代码> GEOS/COD>编译C++代码被触发,过一会儿它就停在下面:
    
    In file included from src/_geoslib.c:255:0:
    /usr/include/geos_c.h:151:22: note: expected ‘GEOSMessageHandler’ but argument is of type ‘void (*)(char *, char *)’
     extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function,
                          ^
    x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/src/_geoslib.o -lgeos_c -lgeos -o build/lib.linux-x86_64-2.7/_geoslib.so
    /usr/bin/ld: cannot find -lgeos
    collect2: error: ld returned 1 exit status
    /usr/bin/ld: cannot find -lgeos
    collect2: error: ld returned 1 exit status
    error: Command "x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/src/_geoslib.o -lgeos_c -lgeos -o build/lib.linux-x86_64-2.7/_geoslib.so" failed with exit status 1
    
    ----------------------------------------
    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-QVrKRr-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-EgAOPT-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-QVrKRr-build/
    
我不确定我做错了什么:

  • 如何向cartopy提供正确的项目4资料?事实上,我更愿意找到一个旧版本的cartopy,它与现有版本的Proj.4(我假设它来自
    pip安装
    bindings)兼容)
  • 如何从我用
    pip
    设置的GDAL链接中获取基础地图查找地理位置?如果这还不够,那么我还应该做些什么?也许一些
    apt获得了一个避免在basemap安装中触发GEOS编译的GEOS pakcage的

<>我在java二进制文件、C++二进制文件和绑定到Python包的这个没有人的地方有点困惑。

< P>正如你注意到的,代码> CtoPy 需要<代码> PROJ。4 < /Cord>LIB版本>=4.9。在Ubuntu(比16.04更新)上,您可以通过
sudo-apt-get-install-libproj-dev
安装它

对于较旧的Ubuntu,例如14.04,您只需从16.04()下载最新的软件包并手动安装即可。请注意,这取决于。在使用
更新旧版本之前,请记住删除旧版本
sudo apt get purge libproj dev libproj9
完成后,打开并从相应体系结构的链接下载软件包(从您的日志中我知道这是amd64)。按顺序双击下载的文件
librproj9
libproj dev
或使用
sudo dpkg-i

这确实安装了proj4,但对我来说它是4.8.0而不是4.9.0