LoginSignup
2
3

More than 1 year has passed since last update.

geopandas インストールはチェンネルに注意

Posted at

実行環境 Windows10, conda 4.8.3, python 3.9.5, geopandas 0.9.0

はじめに

普段シェープファイルの処理は PyShp で間に合わせているのですが、Pandas-like な処理をしたいとか、大量のレコードを扱いたいとか多々あるので、GeoPandas に手を出すことにしました。

さっそく conda の仮想環境から GeoPandas をインストールして使おうとしたのですが、例によってつまづいた のでここに記します。

Qiita でも既に同様の内容の記事はいくつかありますが、記録という意味も込めて投稿しています。

要約すると以下の通り。

エラー内容: GeoPandas をインストールできない、またはインポートできない
原因: パッケージをインストールするチャンネルの混在
対応: 仮想環境でパッケージ経由チャンネルを conda-forge にそろえる

分かっている人には当たり前のことなのでしょうけれど。

以降詳細です。

Try 1

以下の条件で GeoPandas をインストールしてみる

Python: default チャンネルからインストール
GeoPandas: conda-forge チャンネルからインストール

インストールはできる
$ conda install -c conda-forge geopandas
インポートができない(エラーレコードを一部省略)
>>> import geopandas
    ...
    OSError: could not find or load spatialindex_c-64.dll

spatialindex_c-64.dll が見つからない、またはロードできませんと言われました。

失敗。

Try 2

以下の条件で GeoPandas をインストールしてみる

Python: default チャンネルからインストール
GeoPandas: default チャンネルからインストール

インストールできない(エラーレコードを一部省略)
$ conda install geopandas
  ...
  Found conflicts! Looking for incompatible packages.
  ...
  UnsatisfiableError: The following specifications were found to be incompatible with each other:

競合が見つかりました、仕様は互換性がありませんでした、みたいなことを言われます。

失敗。

Try 3

以下の条件で GeoPandas をインストールしてみる

Python: conda-forge チャンネルからインストール
GeoPandas: conda-forge チャンネルからインストール

まず、conda-forgeからPython本体をインストール
$ conda install -c conda-forge python
つぎに、GeoPandasをインストール
$ conda install -c conda-forge geopandas
GeoPandasをインポート
import geopandas

これでうまくいきました。

チャンネルとは

そもそも conda-forge とは何か、という今更な疑問に直面したので調べました。

conda-forge is a GitHub organization containing repositories of conda recipes.

conda-forge のトップページからの抜粋)

つまり conda 公式リポジトリではなく、別の GitHub のリポジトリで管理されているPython パッケージ集の1つということですよね。

言ってしまえばその通り。

なお、conda info コマンドでデフォルトチャンネルの URL が出てきます。

一部のみ抜粋
$ conda info
  ...
  channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                 https://repo.anaconda.com/pkgs/main/noarch
                 https://repo.anaconda.com/pkgs/r/win-64
                 https://repo.anaconda.com/pkgs/r/noarch
                 https://repo.anaconda.com/pkgs/msys2/win-64
                 https://repo.anaconda.com/pkgs/msys2/noarch
  ...

ちなみに、pipPyPI がチャンネルになります。

さらにそもそもな話ですが、

GeoPandas 公式ホームページ -> Getting started -> Installation

の Using the conda-forge channel の Note に、

両方のチェンネルのパッケージの混在はインポートの問題を引き起こすので、デフォルトか conda-forge のどちらかから、すべてをインストールすることを強く勧めます

みたいなことがしっかり書いてありました。
反省。

最後に

Python 本体と GeoPandas をインストールするときのチャンネルを conda-forge に統一することで、GeoPandas を問題なく使えるようになりました。

conda を使う以上 pip は使わない、という基本的な心掛けはもっていましたが、conda の仮想環境のチャンネルの混在は気にしていませんでした。

これを機に仮想環境を再構築した次第です。

ということで GeoPandas 使っていきたいと思います。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3