2012-05-04 34 views
0

我已經從源碼(由於從安裝程序可執行文件安裝的版本中存在錯誤)構建了Python的PIL庫,並且可以在構建計算機上從jpg文件創建Image()對象,但是當我打包這個Python應用程序使用PyInstaller時,應用程序無法打開JPEG圖像。我是否正確地構建了PIL,如PIL encoder jpeg not available所述,或者是其他問題?Windows上的PIL和JPEG庫

更新:錯誤消息是「IOError:編碼器jpeg不可用」。

編輯:從安裝程序可執行文件(對於版本1.1.7和1.1.6,如果不是早期的版本)安裝的版本的問題是它鏈接到VC90.DebugCRT庫/程序集,I不是爲了分發和PyInstaller在我的系統上找不到(儘管版本在那裏)。

回答

1

您需要在您的安裝中包含jpeg編碼器/解碼器dll,否則它不適用於尚未安裝的系統。

還沒有嘗試過這個,但是您也可以通過靜態鏈接來完成此操作,而不是使用--enable-static運行配置腳本。

+0

1感謝。因爲我不知道我不應該將jpeg庫與PIL鏈接起來,這將更有意義地將Pypest庫與PyInstaller版本捆綁在一起,我不會接受這個答案。我不相信PyInstaller有配置腳本,而PyInstaller的setup.py沒有使用--enable-static參數。也許你建議我爲PIL的配置腳本提供--enable-static。 – Brian

0

你有兩個選擇:從源http://www.pythonware.com/products/pil/

  • 構建

    1. 使用PIL的預編譯的二進制文件(請注意,您必須設置JPEG庫之前獲得JPEG的支持,這是不容易在Windows上)

    參考文獻(不需要解決您的問題):

    Please ensure that pillow, a fork of the the Python Imaging Library (PIL), gets installed with JPEG support. Supported formats are printed when pillow is first installed. Instructions on how to get JPEG support are highly platform specific, but guides for PIL should work for pillow as well. Generally speaking, you need to ensure that libjpeg-dev is installed and found during installation.