にせねこメモ

はてなダイアリーがUTF-8じゃないので移ってきました。

FontForge の Python bindings を使えるようにする

FontForgeの機能をPythonから扱える Python bindings があるのだが、どうすれば使えるようになるのか分からない場合もあったのでメモ。

基本的に Python 2 系がベースになっていて、 Python 3 系で使いたい場合は自前でソースからコンパイルしないといけないらしい。

Linux(Ubuntuなど) / Cygwin

パッケージマネージャで、次のパッケージ

をインストール。 Python 2 から使用可能になる。

以下の出力はCygwinのもの。

$ python
Python 2.7.8 (default, Jul 25 2014, 14:04:36)
[GCC 4.8.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import fontforge
>>>

Windows (7 と 8.1で確認)

Fontforge の公式サイト(http://fontforge.github.io/en-US/)からWindows用のインストーラをダウンロードして実行、インストールする。

FontforgePython bindings が使える状態の Python が ffpython.exe として入っているのでそれを使用すると簡単。
具体的には、スタートメニューから

すべてのプログラム → FontForgeFontForge interactive console

とするとffpythonにパスが通ったコマンドプロンプトが立ち上がるので、そこから ffpython.exe を実行すればよい。

C:\Program Files (x86)\FontForgeBuilds>ffpython
Python 2.7.9 (default, Dec 26 2014, 00:24:06)
[GCC 4.9.2] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import fontforge
>>>

Mac OS X (10.10 Yosemite)

パッケージマネージャを使わないでインストールする場合は Python bindings を使うのは大変そう。公式Webからダウンロードできるバイナリには含まれていない。

パッケージマネージャでインストールする場合には Homebrew が推奨されている。

Macports

すでにMacportsFontforgeをインストールしている場合はアンインストールする

sudo port uninstall fontforge
  1. python27オプションを有効にしてインストールする
sudo port install fontforge +python27

すると、 python2.7 から使える(python で起動するとうまくいかなかった…バージョンが異なるらしい)

$ python2.7
Python 2.7.9 (default, Dec 14 2014, 10:02:06) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import fontforge
>>> 
$ python
Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import fontforge
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named fontforge
>>>

Homebrew

Homebrewの場合は次の方法で使えるらしい(未検証)。上記Macportsのリンク参照。

# brew install python
# brew install fontforge --HEAD