首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python/django -“不能使用ImageField,因为枕头没有安装”

python/django -“不能使用ImageField,因为枕头没有安装”
EN

Stack Overflow用户
提问于 2014-09-04 09:37:55
回答 24查看 52.6K关注 0票数 25

我参加了一个项目,所以我想建立一个环境,所以我所做的是:

代码语言:javascript
运行
复制
pip install -r requirements.txt

这完全安装了所有需求,包括django 1.7.0、Pillow 2.4.0和其他一些需求。

然后我要构建数据库:

代码语言:javascript
运行
复制
python manage.py migrate

砰,错误,我得到了以下信息:

代码语言:javascript
运行
复制
CommandError: System check identified some issues:

ERRORS:
stu.chan.icon: (fields.E210) Cannot use ImageField because Pillow is not installed.
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow".
stu.chan.image: (fields.E210) Cannot use ImageField because Pillow is not installed.
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow".
stu.Piec.icon: (fields.E210) Cannot use ImageField because Pillow is not installed.
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow".

..。好像我没有安装枕头。因此,我检查了已安装的包(使用技术),并安装了Pillow 2.4.0

然后,我还试图强制重新安装:pip install --upgrade --force-reinstall Pillow==2.4.0

但是,在运行migrate时,我没有得到相同的错误。

我在MacOSX10.6.7的MacOSX10.6.7上使用了python 3.4.0django 1.7.0,pip降级为pip 1.2.1 (因为有一些带有pip和ssl的virtualenv 1.11.6 问题 )。

上面所有的代码都在virtualenv (bin/activate完成)中。

你对为什么这个问题和如何解决这个问题有什么想法吗?

当我运行上面的force-reinstall命令时(太多的代码被抛出,除了粘贴之外,我无法粘贴它),尽管它以“成功安装枕头”结束,但是代码中有一些警告:

代码语言:javascript
运行
复制
building 'PIL._imaging' extension
 (blabla code)
    _imaging.c:975:13: warning: array index of '1' indexes past the end of an array (that contains 1 elements) [-Warray-bounds]
        value = PyTuple_GET_ITEM(xy, 1);
                ^~~~~~~~~~~~~~~~~~~~~~~
    /usr/local/include/python3.4m/tupleobject.h:58:34: note: instantiated from:
    #define PyTuple_GET_ITEM(op, i) (((PyTupleObject *)(op))->ob_item[i])
                                     ^
    /usr/local/include/python3.4m/tupleobject.h:27:5: note: array 'ob_item' declared here
        PyObject *ob_item[1];
        ^
    1 warning generated.

(blabla code)
   libImaging/Unpack.c:867:1: warning: unused function 'copy3' [-Wunused-function]
    copy3(UINT8* out, const UINT8* in, int pixels)
    ^
    1 warning generated.
EN

回答 24

Stack Overflow用户

回答已采纳

发布于 2014-09-07 14:26:11

我试过:

  • 使用一些指令这里编译“Image-1.1.7”重新安装globaly,但不起作用
  • 使用这种联系重新安装Pillow及其全局依赖关系,但没有工作
  • 使用此链接重新安装GCC4.2,但没有工作

我终于发现我在这个职位的奇妙答案中所描述的案例中。换句话说,我运行的是一个mac,其CPU容量为64位,但内核固件设置为32位。这是一个问题,因为我正在工作的项目是64位构建的。

正如在那个职位中所解释的,当您使用安装程序(DMG)安装python3时,如果内核被设置为32位,它就会嗅探,并相应地安装Python3的32位版本。但是,如果您只是从python的网站下载tarball源代码并将其安装在:

代码语言:javascript
运行
复制
cd Python-3.4.1
./configure
make
sudo make install

然后应该安装64位版本的python3。您可以通过执行以下操作来验证:

代码语言:javascript
运行
复制
file /usr/local/bin/python3
/usr/local/bin/python3: Mach-O 64-bit executable x86_64

完成后,使用这个64位版本的python3,虚拟主机中的PIL/Pillow就解决了所有问题。就连评级下调也变得没有必要了。

票数 7
EN

Stack Overflow用户

发布于 2018-04-16 23:48:03

我在Python 3.6.4的Mac上遇到了这个问题。解决方案是卸载Pillow 5.1.0,而不是安装5.0.0。

代码语言:javascript
运行
复制
pip uninstall Pillow
pip install Pillow==5.0.0
票数 33
EN

Stack Overflow用户

发布于 2017-08-15 10:29:54

在使用CLoudinary实现图像上传时,我也遇到了同样的问题,但我找到了上述答案,但以其他方式找到了答案。

代码语言:javascript
运行
复制
 sudo pip uninstall PIL

 sudo pip uninstall Pillow

 sudo pip install Pillow

在地雷问题解决之后!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25662073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档