2016-11-12 29 views
2

カートリストとベースマップをインストールする前に、いくつかの依存関係を満たす必要があることを理解しています。私はpipnumpyなどのようなもの)を使って大部分を整理しました。マップ/プロットライブラリのインストール方法cartopyとbasemapを使用して

私はPROJ.4とGEOSといくつかのベースマップ問題といくつかのcartopy問題があるがわかりました。 私はPythonのJavaプロジェクトProj.4へのバインディングが十分だと思っていましたが、私はC++ライブラリGEOSで少し失われていました(私はGDALがGEOSのために十分であると思うので、Pythonの世界にこの方法でリンクしました:pip install --global-option=build_ext --global-option="-I/usr/include/gdal" GDAL==`gdal-config --version)。

可能であれば、私は唯一、brew install <some_package>自作例えば(私だけpipのUbuntu(pipが十分でない場合にのみ、apt-get、)およびMac OSXの両方でを使用したい など、アナコンダ、天蓋のようにすべてのそれらの事を避けることを好むだろうpipで十分でない場合)。

cartopyはProj.4のバージョンが古すぎます。 pip出力には、Proj4 version 4.8.0 is installed, but cartopy requires at least version 4.9.0.と表示されます。私はこのpipは、Pythonバインディングのインストールを想定した は十分だったが、それは問題を解決していません:

$ 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: [email protected] 
License: OSI Approved 
Location: /usr/local/lib/python2.7/dist-packages 
Requires: 

PROJ.4へのPythonバインディングが十分ではない、なぜ私は得ることはありません、でも、それらのバインディング場合pipを使用して最新のバージョンを入手できます。

ベースマップは異なる方法で立ち往生している:私はCould not find a version that satisfies the requirement basemap (from versions:) No matching distribution found for basemap

  • を取得何とかpip2 install basemapを使用して

    • しかし、その後ベースマップのドキュメントから、私は、ライブラリが何らかの理由でpipリポジトリにリンクされていないことが判明し、ソースコードからインストールする必要があります。だから私は実行しました:pip2 install https://github.com/matplotlib/basemap/archive/v1.0.7rel.tar.gzと私はC++コードのGEOSコンパイルがトリガされたことを信じて、しばらくたってから、下部、この時に停止します。私は私がやっているかわからないのです

      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/ 
      

    間違った:

    • 正しいProj.4のものをカートに入れる方法?実際に私は、既存のバージョンのProj.4(これはpip installバインディングから来ていると仮定しています)の古いバージョンのカートリストを見つけることを好むでしょう。
    • 私がセットアップしたGDALリンクからGEOSを見つける方法pip?それで十分でない場合は、何をすべきか?おそらく、ベースマップインストール内でGEOSコンパイルを引き起こさないGEOS pakcageのapt-getがありますか?

    私は、Javaバイナリ、C++バイナリ、およびPythonパッケージへのバインディングの間にはまったく混乱しません。

  • 答えて

    0

    あなたが気づいたようにcartopyはバージョン> = 4.9のProj.4 libが必要です。 Ubuntu(16.04以降)では、sudo apt-get install libproj-devからインストールできます。

    古いUbuntuの場合、 14.04では、最新のパッケージを16.04(xenial libproj-dev)からダウンロードし、手動でインストールすることができます。それはlibproj9 in version 4.9に依存することに注意してください。以前のバージョンを更新する前に、それらを更新する前に忘れないでください。
    sudo apt-get purge libproj-dev libproj9 これを実行したら、適切なアーキテクチャのリンクからパッケージを開いてダウンロードします(ログからamd64と理解してください)。ダウンロードしたファイルをlibrproj9libproj-devの順にダブルクリックするか、 sudo dpkg -i <path_to_file>を使用してください。

    +0

    これはproj4をインストールしますが、私にとってそれは4.8.0ではありません4.9.0 – Daniel

    +0

    @ダニエル私はエントリを更新しました。 –

    関連する問題