2010-03-19 52 views
7

我試圖在我的機器上運行webapp/site,它在OSX 10.6.2上運行,我遇到了一些問題:在pythonDjango/PIL錯誤 - 在呈現時捕獲到異常:_imagingft C模塊未安裝

Caught an exeption while rending: The _imagingft C module is not installed 

做進口_imagingft給了我這樣的:

>>> import _imagingft 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: dlopen(/Library/Python/2.6/site-packages/PIL/_imagingft.so, 
2): Symbol not found: _FT_Done_Face 
Referenced from: /Library/Python/2.6/site-packages/PIL/_imagingft.so 
Expected in: flat namespace 
in /Library/Python/2.6/site-packages/PIL/_imagingft.so 

這似乎FreeType庫是有問題的人。到目前爲止,在安裝PIL或編譯(?)jpeg和freetype庫時目前沒有錯誤。

我在Django 1.1.1上,python 2.6.2。

+0

你是怎麼安裝PIL? – 2010-03-19 16:00:52

+0

我在XP上運行Python 2.6的PIL 1.1.7時遇到了同樣的錯誤。如果沒有解決方案,請嘗試使用PIL 1.1.6。 – 2010-03-19 16:04:46

+0

@Dmitry 使用sudo蟒蛇的setup.py安裝 – kenok 2010-03-19 16:43:08

回答

3

我也有過這個問題。無法使用PIL 1.1.6或PIL 1.1.7解決此問題。我從ports和presto安裝py26-pil,它工作。

sudo port install py26-pil 

如果沒有港口,去http://www.macports.org/

1

像這樣的錯誤通常是因爲PIL依賴關係之一未編譯爲通用二進制文件。

試試這個:

  1. 下載的FreeType框架在this website
  2. this website
  3. 下載包中的libjpeg8刪除您最初安裝的libjpeg和FreeType的
  4. 文件安裝新包
  5. 刪除您的生成文件夾爲PIL
  6. 重新構建並安裝PIL

但是,如果您想先嚐試編譯通用二進制文件,請成爲我的客人。我的具體問題實際上是使用libjpeg,無論我如何編譯它,PIL都在import _imaging上進行了攻擊。所以我選擇了打包版本。我不認爲libjpeg或freetype特別受益於自己編譯它們。

中的libjpeg8軟件包安裝到/ usr/local/lib目錄

FreeType的軟件包安裝到/庫/框架文件夾。

0

環境設置不正確生成使用easy_install的Mac OS X的PIL \ libjpeg的二進制文件。本指南應該幫助http://fightingrabbits.com/archives/266 - 它用於安裝Python/Django,但首先經過必要的PIL設置,並在我的10.6.x上工作

9

之前(重新)安裝PIL添加以下sysmlinks使在Mac 10.6雪豹的FreeType:

ln -s /usr/X11/include/freetype2 /usr/local/include/ 
ln -s /usr/X11/include/ft2build.h /usr/local/include/ 
ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/ 
ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib 
+1

在獅子的作品呢! – priestc 2012-04-07 19:58:59

+0

它看起來像/ usr/local/lib /中已存在的文件在i386中,而/ usr/x11/lib /中的文件在x86-64中。因此,刪除舊的和新的符號鏈接就是訣竅。謝謝! – Devang 2012-10-04 07:08:54

相關問題