金子邦彦研究室インストールUbuntu, WSL2Anaconda をインストールし・Anaconda 配下の Python で動くように PostGIS を整える(Ubuntu 上)

Anaconda をインストールし・Anaconda 配下の Python で動くように PostGIS を整える(Ubuntu 上)

前準備

  1. 前準備として Anaconda がインストール済みであること
  2. Anaconda3 の conda パッケージの更新、古い conda パッケージファイルの削除

    「conda config --remove channels conda-forge」は,conda のチャンネルに「conda-forge」が入っていたら削除する操作.「CondaKeyError: 'channels' 'conda-forge' ...」というエラーメッセージは無視してよい.

    conda config --remove channels conda-forge
    conda upgrade -y --all
    conda clean -y --packages
    

    [image]

    (途中省略)

    [image]

    (途中省略)

    [image]

PostGIS を使ってみる

  1. Anaconda 配下の Python に psycopg2, ArcGIS API for Python, gdal, geopandas をインストール
    conda install -y psycopg2 geopandas
    conda install -y -c esri arcgis
    pip install --ignore-installed --upgrade 
    
  2. 次のプログラムを実行してみる

    パスワード(下のプログラムでは「my password」)は、正しいパスワードに置き換えて実行すること

    import psycopg2
    import geopandas 
    conn = psycopg2.connect(database="hoge", user="dbadmin", password="my password", host="localhost")
    q = "select * from P;"
    a = geopandas.GeoDataFrame.from_postgis(q, conn, geom_col='geo')
    print(a)
    

    [image]
  3. Anaconda 配下の Python を使って, GEOS を再インストール

    configure の実行時に「checking for Python library path... configure: error: cannot find Python library path」と表示されるエラーを回避するために、「cp ${HOME}/anaconda3/lib/libpython3.8m.a ${HOME}/anaconda3/lib/libpython3.8.a」を実行.

    cp ${HOME}/anaconda3/lib/libpython3.8m.a ${HOME}/anaconda3/lib/libpython3.8.a
    cd /usr/local
    cd geos
    cd geos-3.5.1
    ./configure --enable-python
    make clean
    make PYTHON_LDFLAGS="-L${HOME}/anaconda3/lib"
    sudo make install
    
  4. Anaconda 配下の Python を使って, PostGIS を再インストール
    cd /usr/local/
    cd postgis
    cd postgis-2.4.4
    ./configure --with-projdir=/usr/local/proj/proj-5.1.0 --with-pgconfig=/usr/bin/pg_config --with-xml2config=/usr/bin/xml2-config
    make clean
    make PYTHON_LDFLAGS="-L${HOME}/anaconda3/lib"
    sudo make install 
    
  5. 確認のため、先ほど実行したプログラムを、もう1度実行してみる

    同じ結果になれば OK.

    [image]