分类: Python/Ruby
2008-08-21 12:26:37
最近在OpenBSD上安裝Python Image Library(簡稱 PIL)時發現幾個問題,就在當我要去使用到ImageFont物件時會出現底下的錯誤訊息:
>>> import _imagingft
dlopen("/usr/local/lib/python2.4/site-packages/PIL/_imagingft.so", 2);
Traceback (most recent call last):
File "", line 1, in ?
ImportError: File not found
這個表示在安裝PIL時在指定FreeType2 的include路徑時有問題。
而如果出現的不是File not found,而是 ImportError: No module named
表示Server並未支援FreeType2,所以必須先進行安裝FreeType2。
在進行安裝PIL時可以採用build_ext參數去檢查哪些延伸(extends)套件是沒有被Server支援到,指令如下:
# python setup.py build_ext -i
然後會得到像底下這樣的報告:
*** TKINTER support not available
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
*** FREETYPE2 support not available
通常jpeg和zlib大部份都會支援到,所以在這裡不多加說明,這裡主要以Tkinter與FreeType2安裝教學為主。
OpenBSD安裝FreeType2
我以OpenBSD4.1版為教學範例,如果您使用的是不同版本時並不用太擔心,因為安裝方式都一樣。
所需檔案
freetype-2.1.10.tar.gz
安裝步驟指令
# wget
# tar -zxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# vi configure
# 找到將底下程式,將make改為gmake
if test "x$GNUMAKE" = x; then
GNUMAKE=gmake
fi
# ./configure
# make
# make install
如果沒有去改變configure中的make為gmake時,在進行make時會出現底下訊息:
GNU make (>= 3.79.1) or makepp (>= 1.19) is required to build FreeType2.
Please try
`GNUMAKE= ./configure'.
OpenBSD安裝Tkinter
需要用到的檔案可以到 進行下載
所需檔案
python-tkinter-2.4.4p1.tgz
tk-8.4.7p1.tgz
tcl-8.3.5p0.tgz
安裝步驟指令
# pkg_add python-tkinter-2.4.4p1.tgz
此時tcl與tk會一併自動安裝.
OpenBSD安裝Python Image Library(PIL)
在進行安裝Tkinter,Tcl與FreeType2後,它們的Include路徑分別在/usr/local/include根目錄下,如:
Tkinter => /usr/local/include/tk8.4
Tcl => /usr/local/include/tcl8.4
FreeType2 => /usr/local/include/freetype2
安裝步驟指令
# python setup.py build_ext -I /usr/local/include/tcl8.4/:/usr/local/include/tk8.4/:/usr/local/include/freetype2 -i
# 進行安裝後的測試,如果出現passed就表示可以進行下一步驟。
# python selftest.py
# 進行安裝
# python setup.py install