python / django - “因为没有安装Pillow所以无法使用ImageField”

时间:2014-09-04 09:37:55

标签: python django pip pillow

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

pip install -r requirements.txt

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

然后我想构建数据库:

python manage.py migrate

繁荣,错误,我得到以下内容:

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一样。 所以我检查了已安装的软件包(使用this技术),并安装了Pillow 2.4.0 IS。

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

但是,无所事事我在运行migrate时会遇到同样的错误。

我在python 3.4.0包裹的mac OS X 10.6.7上使用django 1.7.0virtualenv 1.11.6,其pip降级为pip 1.2.1(由于某些优点,使用pip和ssl已知但尚未完全解析也无法理解issue

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

您对此问题的原因以及解决方法有什么想法吗?

- - - - - - 编辑 - - - - - -

当我运行上面的force-reinstall命令时,(这么多的代码都被打败了,我无法将其全部粘贴),尽管它完成了"成功安装了Pillow",还有#s;代码中的一些警告:

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.

15 个答案:

答案 0 :(得分:20)

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

pip uninstall Pillow
pip install Pillow==5.0.0

答案 1 :(得分:5)

我试过了:

  • 通过编译" Imaging-1.1.7"重新安装globaly PIL;使用一些说明here,但没有工作
  • 使用that link全局重新安装Pillow及其依赖关系,但无法正常工作
  • 使用this link重新安装GCC4.2,但它没有用

我终于想通了我在this post的精彩回答中描述的情况。换句话说,我正在运行一个mac,其CPU能够达到64位,但其内核固件设置为32位。这是一个问题,因为我正在开发的项目是为64位构建的。

that post中所述,当您使用安装程序(DMG)安装python3时,如果内核设置为32位并相应地安装32位版本的python 3,它将会嗅探。但是如果你只是从python的网站下载tarball源代码并安装它:

cd Python-3.4.1
./configure
make
sudo make install

然后应该安装64位版本的python3。您可以通过以下方式进行验证:

file /usr/local/bin/python3
/usr/local/bin/python3: Mach-O 64-bit executable x86_64

这样做,所有问题都在使用这个64位版本的python3的virtualenv中的PIL / Pillow消失了。即使点数降级也没必要了。

答案 2 :(得分:1)

有类似的问题,我的解决方案更简单:

显然PIL和Pillow包不能共存。 如果您想使用Pillow,首先必须卸载PIL,然后安装Pillow

如果您使用的是Mac,则必须使用brew安装一些库。下面提到的是一系列步骤:

$pip uninstall PIL
$brew install libtiff libjpeg webp little-cms2
$pip install Pillow

要测试枕头是否已安装且可以使用,请打开python口译员并尝试导入以下内容:

>>> from PIL import Image

*请注意,该库仍然显示PIL,但现在它是从Pillow而不是PIL导入的。

如果你能够成功导入那么你很高兴(很可能你不必担心设置PYTHONPATH或32/64位安装)

来源:https://pillow.readthedocs.io/en/latest/installation.html

答案 3 :(得分:1)

我使用PyCharm的调试器出错了。我不得不去设置 - >'项目口译员'突出'枕头'然后点击右边的小箭头升级它。然后错误就消失了。

答案 4 :(得分:1)

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

 sudo pip uninstall PIL

 sudo pip uninstall Pillow

 sudo pip install Pillow

之后我的问题解决了!

答案 5 :(得分:1)

出于某种原因,

pip install pillow

没有工作。 所以我去了枕头的官方网站并使用了

python -m pip install --upgrade pillow

解决了我安装枕头的问题。

答案 6 :(得分:1)

在您的“site-packages”文件中,下载所需的枕头 (.whl) 文件,然后使用命令“pip install “directory””进行安装。

我已经看到这个错误是由于枕头版本错误导致的,在我的情况下是位安装。

如果您有 32 位机器,那么您必须下载 32 位 Pillow。 如果您有 64 位机器,那么您必须下载 64 位 Pillow。

就我而言,我使用的是 Visual Studio,但是当我尝试使用 PyCharm 安装 Pillow 时,它会自动下载并安装合适的 Pillow 版本,而 Visual Studio 不会自动完成这些工作。

当我尝试通过卸载安装 Pillow 时,Visual Studio 多次安装 Pillow 错误版本。 基本上它是从我猜的缓存文件中获取 .whl 文件。

答案 7 :(得分:0)

对于python3,请确保您的std::string具有$PYTHONPATH路径,并且 而不是运行命令

virtualenv

运行:

python manage.py migrate

答案 8 :(得分:0)

macOS High Sierra 10.13.6 我的解决办法是

pip3 install Pillow

不是

pip install Pillow

答案 9 :(得分:0)

如果您将Pillow 4.1.0与Python 3.6.0一起使用,则升级Python版本将解决此问题。 在此处找到解决方案:https://github.com/python-pillow/Pillow/issues/2479#issuecomment-292252147

答案 10 :(得分:0)

即使安装了Pillow,我的虚拟环境中也存在相同的问题。另外安装较低版本也无济于事。我离开虚拟环境后,它立即起作用。也许这正在帮助某人。

有命令:

    (wb_env) C:\Users\Taranis\Dropbox\08_Coding\Python 
    Coding\Programme\Projekt_Webblog\tim_webblog>python manage.py makemigrations app_webblog

错误:

    SystemCheckError: System check identified some issues:

    ERRORS:
    app_webblog.BlogEntry.entry_img: (fields.E210) Cannot use ImageField because 
    Pillow is not installed.
    HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install 
    Pillow".

答案 11 :(得分:0)

对我有用的是从用户文件夹中卸载Pillow并使用sudo进行安装。

初始安装为:

$ pip3 install Pillow --user

安装到:~/.local/lib/python3.7/site-packages/Pillow-7.0.0.dist-info

因此,首先将其卸载,然后使用sudo进行安装:

$ pip3 uninstall Pillow
$ sudo pip3 install Pillow

新位置:/usr/local/lib64/python3.7/site-packages/Pillow-7.0.0.dist-info,问题已解决。

答案 12 :(得分:0)

我不知道为什么,但是先卸载然后重新安装Pillow( 相同版本 )对我来说解决了这个问题。

python -m pip uninstall Pillow
python -m pip install Pillow

枕头版本为7.1.1。

答案 13 :(得分:0)

窗口用户

首先卸载 Pip

{
    "access_token": "xxx",
    "refresh_token": "xxx",
    "scope": "https://www.googleapis.com/auth/calendar",
    "token_type": "Bearer",
    "expiry_date": 1613023105889
}

然后重新安装

pip uninstall Pillow

Ubuntu 用户

首先卸载 Pip

pip install Pillow

然后重新安装

sudo pip uninstall Pillow

希望对你有用

答案 14 :(得分:0)

这对我有用,

sudo apt-get install libjpeg-dev -y
sudo apt-get install zlib1g-dev -y
sudo apt-get install libfreetype6-dev -y
sudo apt-get install liblcms1-dev -y
sudo apt-get install libopenjp2-7 -y
sudo apt-get install libtiff5 -y

您可能安装了其中一些,但不是全部。对我来说,其中一些不是,这导致了问题。