2011-05-26 69 views
-4

我花了好几个小时试图解决这个问题。Ubuntu 11.04:将PIL安装到带有PIP的virtualenv中

我做到以下几点:

sudo apt-get install python-dev 
sudo apt-get install libjpeg8-dev 
sudo apt-get install libfreetype6 libfreetype6-dev 
mkvirtualenv -p python2.7 --no-site-packages foobar 
pip install PIL 

每当我试着上传我的Django-CMS网站上的图像,我得到一个错误信息。

+2

你至少能做的就是发布错误消息... – 2011-05-26 13:07:29

+0

的错误信息是:“上传有效的图片你上传的文件。要么不是图像,要么是损坏的图像。“虽然OP没有将此作为问题,但这是一个常见问题。 – claymation 2012-07-04 02:15:41

回答

17

我在尝试使用Django时遇到了同样的问题& Virtualenv - 我无法上传图片,经过一些研究后,所有内容都指向了PIL。我确实尝试重新安装该软件包,但即使上传了所有必需的库,PIL仍然不支持JPG和PNG。

似乎Ubuntu窥视决定移动库的位置(根据此修复:http://ubuntuforums.org/showpost.php?p=10804763&postcount=2)。

我的解决办法:

  1. 确保您已安装的所有库。

    命令和apt-get安装的libjpeg-dev的的libjpeg62的libjpeg62-dev的的zlib1g-dev的libfreetype6 libfreetype6-dev的

  2. 安装枕头,这是国际私法的理智的包。

    PIP安装枕头(而在你的virtualenv)

+2

你是如何让Django与枕头而不是PIL一起工作的?我得到:“要使用ImageFields,您需要安装PIL ..” – 2012-01-17 11:38:53

+3

@Ron Cohen:这是一个替代品 - 只是一个稍微不同的PIL。 – stricjux 2012-01-19 16:57:22

+0

尝试使用'apt-get'安装库时出现以下错误:'libjpeg-turbo8-dev:Conflicts:libjpeg62-dev but 6b1-2ubuntu1 is to be installed'。有任何想法吗?我使用的Ubuntu 12.04 – 2012-06-21 19:24:44