簡體   English   中英

PIL錯誤:未安裝_imaging C模塊

[英]PIL error: The _imaging C module is not installed

我安裝了PIL(Python映像庫)。

當我運行Python時:

import PIL
import Image
import _imaging

我不會得到錯誤。 但是,在運行我的應用程序時,它會提升

The _imaging C module not installed

在Windows上,刪除C:\\ Python27中的_imaging.pyd和_imagingft.pyd。 將所有_imaging模塊保留在C:\\ Python27 \\ Lib \\ site-packages \\ PIL文件夾中。

這個對我有用。

我在你發送的鏈接上發布了這個回復(謝謝你),但我想也會在源代碼上發帖。 對不起該死的帖子。

我希望有一種方法可以做到這一點,而無需重新編譯。 我碰巧使用virtualenv。 我確實發現如果我吹掉我的虛擬環境安裝,然后用pip重新安裝,則映像開始再次運行。 這些步驟似乎有效(注意,我正在使用OSX)

不確定這是否重要,但檢查是否安裝了jpeg

winesap:~ $ port installed | grep -i jpeg
  jpeg @7_0
  jpeg @8a_0 (active)

確保我已安裝PIP

sudo port -v install py26-pip

刪除我擁有的舊虛擬環境並重新創建它

rm -rf ve
virtualenv –no-site-packages –distribute ve
. ./ve/bin/activate

將pil和django安裝到virtualenv中

echo “pil” > requirements.pip
echo “django” >> requirements.pip
pip-2.6 install -E ./ve/ -r requirements.pip

測試導入是否現在有效。 注意缺乏令人討厭的C模塊錯誤

python
>>import import ImageFont 
>>

希望這很有用。

如果from PIL import Image工作但import _imaging失敗,這里有一些可能對您有幫助的事情。 如果Image失敗,請參閱最后的注釋

在Ubuntu 13.04(raring)上,我遇到了這個問題。 事實證明,Ubuntu的安裝_imaging.so在App Engine不想到的地方: /usr/lib/python2.7/dist-packages代替/usr/lib/python2.7/dist-packages/PIL 所以_imaging.so不在sys.path任何地方。

以下是幾種解決方法:

將PIL C模塊放在路徑上的某個位置:

我注意到/path/to/google_appengine/lib/PIL-1.1.7sys.path ,但我的安裝中不存在該目錄。 所以我創建了目錄並將.so文件復制到其中,一切正常。 每次更新App Engine SDK時,您都必須再次執行此操作,但至少它不會破壞您正在開發的代碼。

main.py操作sys.path:

此代碼將檢查我們是否正在運行dev appserver,如果是,請將正確的dir添加到路徑中。 未經測試但它應該工作;)

# Find _imaging.so and put its directory here.
# `locate _imaging.so` or `dpkg -L python-imaging`
PIL_PATH = '/usr/lib/pyshared/python2.7/'

PRODUCTION_MODE = not os.environ.get(
    'SERVER_SOFTWARE', 'Development').startswith('Development')

if not PRODUCTION_MODE:
    sys.path.insert(PIL_PATH)

我想這可能不僅僅是可用的PIL模塊,因此會引入(更多)開發和生產之間的差異。 此外,這種技術涉及修改您的應用程序的源代碼,如果不止一個人開發它,這似乎是一個糟糕的電話。


注意 :如果import Image失敗,您可能忘記將PIL庫添加到app.yaml

libraries:
- name: PIL
  version: "latest"

在添加此庫之后,您可能需要重新啟動dev_appserver.py ,以便在例如交互式控制台中反映更改。

問題存在的原因是PIL 1.1.6? (僅1.1.7),版本1.1.6是不是使用這些庫?

PIL 1.1.6還使用其內部C庫來加快速度。

對於Windows,您應該使用預編譯的包。 http://www.pythonware.com/products/pil/為1.1.7提供X86 Windows二進制文件。 您可能會遇到1.1.7 Windows二進制文件的問題。 freetype C庫引用了一個在所有機器上都不可用的調試CRT。 您可以使用十六進制編輯器輕松修補_imagingft.pyd文件。

我完全錯過了lib/site-packages/PIL文件夾中的_imaging.*文件。

我從這里下載了雞蛋(正確的文件取決於平台):

https://pypi.python.org/pypi/Pillow/2.7.0

將其從.egg重命名為.zip, and copied all the files in the folder that start with _imaging that start with and copied all the files in the folder PIL and copied all the files in the folder to the folder lib / site-packages / PIL`。

.. 問題解決了

在Ubuntu上,以下命令幫助了我(感謝askubuntu上的這個答案 ):

sudo apt-get install libjpeg62:i386

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM