0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Geopandasを使いたいけれどインストールに失敗(関連するパッケージが正しく認識されていない?)

Last updated at Posted at 2020-08-17

※この記事は問題解決ができたわけではありません。対処がわかったらその段階で追記してゆきたと思います。
追記しました。根本的な問題は解決できていないですが、別の環境をあきらめて作り、geopandasをインストールしました。

Geopandasを使いたい
GISデータで扱われる主要なファイル形式としてシェープファイル(.shp)がありますが、
各々のフィーチャにくっついている膨大な量の表データもPandasのように扱うことができれば、その表の値に応じたデータ処理ができればということで調べていた時にGeopandasでそのようなことができると知りました。

早速今の環境にも導入したい!arcpyとの併用もできるだろうか、と早速インストールをしてみたのですが、ここで早速発生してしまったエラーの対処ができず参りました。

インストールで行った手順
普通にconda install geopandasを実行

(arcgispro-py3) C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3>conda install geopandas
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3:

The following NEW packages will be INSTALLED:

    fiona:           1.8.13.post1-py36hd760492_0
    geopandas:       0.8.1-py_0
    libspatialindex: 1.9.3-h33f27b4_0
    pyproj:          2.6.1.post1-py36hcfa1391_1
    rtree:           0.9.4-py36h21ff451_1

Proceed ([y]/n)? y

geopandas-0.8. 100% |###############################| Time: 0:00:00   2.01 MB/s

geopandasと関連するパッケージがインストールされたみたいです。
conda listでパッケージを確認するとgeopandasと上記の一緒にインストールされたパッケージが加わっていました。

使ってみるとImportError発生

試しにjupyter notebookを起動して使ってみます。

パッケージがちゃんとインストールされていて使えるかどうかの確認のためjupyter notebookでimportだけ行いました。arcpyは比較用です。

import arcpy
import geopandas

結果、エラーが返ってきます。

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-be0c2fb87ace> in <module>
      1 import arcpy
----> 2 import geopandas

~\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\geopandas\__init__.py in <module>
      5 from geopandas.array import points_from_xy  # noqa
      6 
----> 7 from geopandas.io.file import _read_file as read_file  # noqa
      8 from geopandas.io.arrow import _read_parquet as read_parquet  # noqa
      9 from geopandas.io.arrow import _read_feather as read_feather  # noqa

~\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\geopandas\io\file.py in <module>
      5 import pandas as pd
      6 
----> 7 import fiona
      8 import pyproj
      9 from shapely.geometry import mapping

~\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\fiona\__init__.py in <module>
     82     os.environ["PATH"] = os.environ["PATH"] + ";" + libdir
     83 
---> 84 from fiona.collection import BytesCollection, Collection
     85 from fiona.drvsupport import supported_drivers
     86 from fiona.env import ensure_env_with_credentials, Env

~\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\fiona\collection.py in <module>
      7 
      8 from fiona import compat, vfs
----> 9 from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
     10 from fiona.ogrext import Session, WritingSession
     11 from fiona.ogrext import buffer_to_virtual_file, remove_virtual_file, GEOMETRY_TYPES

ImportError: DLL load failed: 指定されたプロシージャが見つかりません

エラーメッセージの確認
arcpyは普通にインポートできているようですが、geopandasのインポートが失敗しています。エラーが発生した行を確認すると、geopandasがというよりも、これと一緒にインストール対象になっていたパッケージのfionaに何か問題があるようです。確かにディレクトリは存在するのに、正しくインストールできていないようです。

問題の原因と思われるfionaのインポートを試す

import fiona

この場合でも、同じようなエラーが発生しました。

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-4c762272c079> in <module>
----> 1 import fiona

~\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\fiona\__init__.py in <module>
     82     os.environ["PATH"] = os.environ["PATH"] + ";" + libdir
     83 
---> 84 from fiona.collection import BytesCollection, Collection
     85 from fiona.drvsupport import supported_drivers
     86 from fiona.env import ensure_env_with_credentials, Env

~\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\fiona\collection.py in <module>
      7 
      8 from fiona import compat, vfs
----> 9 from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
     10 from fiona.ogrext import Session, WritingSession
     11 from fiona.ogrext import buffer_to_virtual_file, remove_virtual_file, GEOMETRY_TYPES

ImportError: DLL load failed: 指定されたプロシージャが見つかりません

fionaがインストールできないという問題に対処しないとgeopandasは使えないみたいです。
引き続き対策方法を探します。

追記
ひとまずはarcpyと併用でなくてもいいので、geopandasをインストールして動かすことがまずはできればと思い、別の環境をgeoという名前で作成して新しく構築してみることにしました。

(arcgispro-py3) C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3>conda create -n geo python=3.7

arcGISに付属していたpythonはバージョンが古かったため、こちらではpythonのバージョンをより新しい3.7に指定してインストールしました。何もバージョンを指定せずpythonとだけ記述した場合、既存のものと同じ3.6をインストールしようとするメッセージが表示されました。

空っぽの新しい環境にgeopandasをインストールしました。

(geo) C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\geo>conda install geopandas

新しい環境でもjupyter notebookを使いたいので、Jupyterで複数カーネルを簡単に選択するための設定を参考にjupyter notebook上でkernelを切り替えて違う環境を使用できるようにしました。

現在のkernelを確認すると今は古いほうの環境だけになっているので、


(geo) C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\geo>jupyter kernelspec list
Available kernels:
  python3    C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\geo\share\jupyter\kernels\python3

新しい環境をここに追加しました。
確認すると無事追加されたようです。

(geo) C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\geo>ipython kernel install --user --name=geo --display-name=geo
Installed kernelspec geo in C:\Users\hoge\AppData\Roaming\jupyter\kernels\geo

(geo) C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\geo>jupyter kernelspec list
Available kernels:
  geo        C:\Users\hoge\AppData\Roaming\jupyter\kernels\geo
  python3    C:\Users\hoge\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\geo\share\jupyter\kernels\python3

これでjupyter notebookでkernel → change kernel →geoを選択したうえで

import geopandas

を行うと、エラーが発生せず新環境のほうに正しくインストールされたことが確認できました。
こちらにはarcpyが入っていないのでいちいち切り替えをしなくては両者が使えないですが、入手すること自体はできました。
なぜ古いほうの環境にgeopandasそしてfionaをインストールできないのかは、新しい環境にインストールされたパッケージと見比べて確認してみたいと思います。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?