インストール手順 (MacOS 11)

ここでは MacOS に pygeonlp をインストールする手順の例を示します。 動作確認済みのバージョンは 11.3.1 です。

事前に必要なもの

pygeonlp は日本語形態素解析に MeCab C++ ライブラリと UTF8 の辞書を利用します。 また、 C++ 実装部分が Boost C++ に依存します。

MacOS の場合には Homebrew を利用します。

Homebrew のインストール

既に Homebrew をインストール・設定済みの場合はこの手順は不要です。

まず Homebrew 公式サイトの手順通りにインストールします。

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

画面に Next steps: Add Homebrew to your PATH... と表示されるので、 表示されたとおりに実行します。

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

これで brew を利用する準備が完了しました。

MeCab と Boost のインストール

brew コマンドで MeCab と Boost をインストールします。

% brew install mecab mecab-ipadic boost

python, pip の準備

MacOS 標準の Python3 は 3.8.5 で pygeonlp に対応していますが、 システムディレクトリ /Library/python の下にパッケージ群が インストールされますので、お勧めしません。

ここでは Homebrew の python3 を利用する方法を説明します。

他のモジュールとの依存関係などで問題が起こる可能性があるので、 なるべく pyenv, venv 等を利用して Python 3.8 以降の 環境を用意することをお勧めします。

Homebrew の python3 を利用する場合

まだ python3 をインストールしていない場合はインストールしてください。

% brew install python3
% rehash
% which python3
/opt/homebrew/bin/python3
% python3 --version
Python 3.9.5

python3 をインストールすると pip3 も利用できます。

以降の説明の pythonpython3 に、 pippip3 に 読み換えてください。

Pyenv を利用する場合

Pyenv, Pipenv を利用する場合も Homebrew でインスト-ルできます。

% brew install pyenv pipenv
% pyenv install --list  # 利用可能な python のリスト
% pyenv install 3.9.5   # 3.8 または 3.9 で最新を推奨
% pipenv --python=3.9.5

Python のパッケージは pyenv 環境内にインストールされます。

pygeonlp のインストール

pygeonlp パッケージは pip コマンドでインストールできますが、 パッケージ内の C++ 拡張モジュールをコンパイルするため、 Homebrew のヘッダファイルとライブラリの場所を環境変数で 指定する必要があります。

また、 Homebrew の boost が -std=c++14 オプションを付けて ビルドされているので、このオプションも指定する必要があります。

% CFLAGS="-I$HOMEBREW_PREFIX/include -std=c++14" LDFLAGS="-L$HOMEBREW_PREFIX/lib" pip install pygeonlp

インストールはこれで完了です。

image not found エラー対応

python を実行して pygeonlp.api パッケージをインポートする際に libgcc が見つからないというエラーが発生する場合があります。

% python
>>> import pygeonlp.api
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  ...
ImportError: dlopen(/opt/homebrew/lib/python3.9/site-packages/lxml/etree.cpython-39-darwin.so, 2): Library not loaded: /opt/homebrew/opt/gcc/lib/gcc/11/libgcc_s.1.1.dylib
Referenced from: /opt/homebrew/lib/python3.9/site-packages/lxml/etree.cpython-39-darwin.so
Reason: image not found

このエラーは gcc をインストールすることで解決します。

% brew install gcc

GDAL のインストール

この項目はオプションです。

pygeonlp は GDAL をインストールすると、 pygeonlp.api.spatial_filter module を利用することができます。

MacOS の場合は、 brew コマンドで gdal 3.3 をインストールします。 同時に brew python 用の gdal パッケージもインストールされます。

% brew install gdal

Pyenv 環境を利用している場合は、その環境の python 用に pip で gdal パッケージをインストールしてください。

% pip install gdal==3.3

GDAL が有効になっているかどうかは次の手順で確認してください。

$ python
>>> from pygeonlp.api.spatial_filter import GeoContainsFilter
>>> gcfilter = GeoContainsFilter({"type":"Polygon","coordinates":[[[139.43,35.54],[139.91,35.54],[139.91,35.83],[139.43,35.83],[139.43,35.54]]]})

GDAL がインストールされていない場合は from の行で、 正常に動作していない場合は gcfilter の行で例外が発生します。