2010-03-21 49 views
68

當我使用easy_install或buildout安裝PIL時,它以這種方式安裝,我必須執行'導入映像',而不是'從PIL導入映像'。使用virtualenv或buildout安裝PIL的問題

但是,如果我做「apt-get install python-imaging」或使用「pip -E test_pil install PIL」,一切正常。

下面是我如何嘗試使用的virtualenv安裝PIL例子:

# virtualenv --no-site-packages test_pil 
# test_pil/bin/easy_install PIL 
# test_pil/bin/python 
Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import PIL 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named PIL 

我看到,easy_install的包PIL打入雞蛋,和PIP沒有。與buildbot一樣,它使用雞蛋。

如何使用easy_install或buildout正確安裝PIL?

回答

95

打包在pypi上的PIL版本(由作者提供)與setuptools不兼容,因此不易安裝。人們在其他地方創建了easy_installable版本。目前,您需要指定一個查找鏈接網址,並使用pip獲得良好的包裝:

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL 

使用pip install與PIL的--no-index你避免運行找到的PyPI的風險(非固定)原件。如果您要使用easy_install,則必須使用直接鏈接到更正版本的源代碼壓縮包; easy_install的固執依舊採用了查找鏈接網址的PyPI鏈接:

easy_install http://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz 

要包括PIL在擴建,要麼指定使用相同版本銷的雞蛋或使用版本部分:

[buildout] 
parts = 
find-links = 
    http://dist.plone.org/thirdparty/ 
eggs = 
    PIL 
versions = versions 

[versions] 
PIL = 1.1.7 

編輯2011年3月:解決包裝問題的解決方案現在已合併到PIL's development tree中,因此此解決方法可能很快就會過時。

編輯2013年2月:只需使用Pillow並完成它。 :-)明顯地等待原始包裹被修復沒有得到回報。

+0

作者被通知了這個,以便它也固定在pypi上嗎? – blueyed 2010-03-29 23:20:14

+0

我瞭解到作者對修復pypi沒有興趣。 – 2010-04-05 15:52:19

+1

我試過了你的例子中顯示的版本,但我仍然有同樣的問題。我最終使用了pythonware網站上的安裝程序,然後將PIL目錄和PIL.pth文件複製到virtualenv中,併爲我解決了這個問題。 – tponthieux 2011-02-07 06:45:36

78

使用Pillow: the "friendly" PIL fork :-)提供:

  • 完整的setuptools兼容性
  • 更快的發佈週期
  • 沒有圖片代碼,從PIL不同的變化(即它的目的是跟蹤所有PIL圖像代碼的變化,並沒有自身的變化而不報告他們的上游。)
  • Windows二進制

如果PIL執行的是枕頭的功能,那麼叉子就會死亡。在此之前,我們有枕頭。

免責聲明:我是叉作者,創建枕頭主要是爲了讓我的工作更輕鬆(雖然很高興看到其他人也使用它)。

編輯:Pillow 2.0.0於2013年3月15日發佈。它提供了Python 3支持以及許多錯誤修復/增強功能。儘管我們仍然試圖跟蹤上游PIL的變化(不幸的是,幸運的是取決於你如何看待它),枕頭已經開始偏離PIL。

+0

謝謝你的工作!我也試圖讓我的金字塔擴建工作與PIL,但現在我發現了這個討論,我用枕頭取代它,它的工作。 :-) – therealmarv 2012-01-08 18:30:54

+1

感謝Pillow @aclark!每當我創建新機器並且總是在Ubuntu上使用virtualenv,buildout和setuptools支持JPEG和PNG時遇到問題時,至少經歷了PIL一年的苦苦掙扎之後,我發現Pillow!現在,只是一個setuptools定義,它只是工作。萬分感謝! – JeromeParadis 2012-06-06 22:18:13

+0

我不認爲這是必要了,但它現在適用於設置工具嗎? – ranman 2012-07-24 22:09:34

5

在Windows上,我在virtualenv中安裝PIL如下:

由執行.exe文件在全局的Python站點包安裝PIL: http://www.pythonware.com/products/pil/

那麼,作爲「做自己-er「,將C:\ Python25 \ Lib \ site-packages中的PIL.pth文件和PIL目錄複製到virtualenv site-packages目錄中。是啊,蟒蛇仍是一個「讓你的手髒」的環境...

7

對於Ubuntu的,我發現我需要安裝C頭文件包我的Python版本(2.7)

sudo apt-get install python2.7-dev

之後,pip install pil工作。

+0

我還需要Python.h文件,同時嘗試在Ubuntu virtualenv中安裝PIL,這樣就修復了它! – 2014-02-20 23:09:27