【问题标题】:Python: The _imagingft C module is not installedPython:未安装 _imagingft C 模块
【发布时间】:2011-04-30 00:41:43
【问题描述】:

我尝试了很多在网上发布的解决方案,它们都不起作用。

>>> import _imaging
>>> _imaging.__file__
'C:\\python26\\lib\\site-packages\\PIL\\_imaging.pyd'
>>>

所以系统可以找到_imaging但仍然不能使用truetype字体

from PIL import Image, ImageDraw, ImageFilter, ImageFont


im = Image.new('RGB', (300,300), 'white')
draw = ImageDraw.Draw(im)
font = ImageFont.truetype('arial.ttf', 14)
draw.text((100,100), 'test text', font = font)

引发此错误:

ImportError: The _imagingft C module is not installed

File "D:\Python26\Lib\site-packages\PIL\ImageFont.py", line 34, in __getattr__
  raise ImportError("The _imagingft C module is not installed")

【问题讨论】:

    标签: python image python-imaging-library


    【解决方案1】:

    在 Ubuntu 上,您需要在编译 PIL 之前安装 libfreetype-dev。

    $ sudo apt-get install libfreetype6-dev
    $ sudo -s
    \# pip uninstall pil
    \# pip install --no-cache-dir pil
    

    PS!在大多数 Ubuntu 版本上,以 sudo 运行 pip install 通常会将软件包安装到 /usr/local/lib。您可以考虑将 Pil 安装在用户拥有的路径中的虚拟环境(virtualenv 或 venv)中。

    您也可以考虑安装枕头而不是 pil,我认为它与 API 兼容:https://python-pillow.org。请注意,Pillow 还需要 libfreetype-dev,如果在初始安装期间没有 libfreetype-dev,您可能需要执行相同的卸载/安装步骤。

    【讨论】:

    • 非常感谢!它立即帮助了我!
    • “aptitude install aptitude install”中有错误;)
    • 这对我不起作用(Ubuntu 12.04,pip 1.1.7,Python 2.7)。我卸载了pip,apitude安装了libfreetype6-dev,然后运行sudo pip install --upgrade pil,但问题依旧。
    • 这在 Xubuntu 上对我有用。 sudo apt-get 安装 libfreetype6-dev。然后在我的 virtualenv 中运行,pip install Pillow(不带 sudo)。您不想在虚拟环境中使用 sudo pip。
    • 对于仍然遇到此问题的任何人的参考,@Rafay 使用pip install --no-cache-dir pillow 的解决方案可能会有所帮助。
    【解决方案2】:

    您安装的 PIL 是在没有 libfreetype 的情况下编译的。

    您可以在此处获得 PIL 的预编译安装程序(使用 libfreetype 编译)(以及许多其他预编译的 Python C 模块):

    http://www.lfd.uci.edu/~gohlke/pythonlibs/

    【讨论】:

    • 如果你想要 linux 二进制文件,我猜你必须从发行版的软件存储库中获取它。
    • 这正是我在 Windows 上获得 TTF 支持所需要的。官方页面上的 PIL 二进制文件在加载 _imagingft.pyd 时出现 sxs 问题。谢谢!
    • 现在你也可以从PyPI - the Python Package Index获得枕头。
    • 看起来没有 PIL(不是 Pillow)了。有没有其他来源可以下载?
    • @LA_ Pillow 是 PIL 的替代品
    【解决方案3】:

    以下内容在 Ubuntu 14.04.1 64 位上对我有用:

    sudo apt-get install libfreetype6-dev
    

    然后,在 virtualenv 中:

    pip uninstall pillow
    pip install --no-cache-dir pillow
    

    【讨论】:

    • 感谢缓存!另外,我们可以在重新安装 Pillow 之前删除 pip 缓存: rm -rf ~/.cache/pip
    • 只是一个评论,在 CentOS 6 中:yum install freetype-devel libjpeg-devel libpng-devel
    【解决方案4】:

    CentOS 6(可能还有其他基于 rpm)的解决方案:

    yum install freetype-devel libjpeg-devel libpng-devel
    
    pip uninstall pil Pillow
    pip install pil Pillow
    

    【讨论】:

    • 使用第一个命令安装 *devel,然后使用“yum”(在 epel 存储库中)安装 python-imaging 以显示图像。
    【解决方案5】:

    在 OS X 中,我这样做是为了解决问题:

    pip uninstall PIL
    ln -s /usr/X11/include/freetype2 /usr/local/include/
    ln -s /usr/X11/include/ft2build.h /usr/local/include/
    ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/
    ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib
    pip install PIL
    

    【讨论】:

    • 对我不起作用 - 在每行 ln -s ... 之后我得到了 ln: /usr/local/lib/libfreetype.dylib: File exists。问题仍然存在。你还有什么想法吗?
    • 你会试试ln -sf吗? f 会覆盖现有文件,因此请务必备份现有文件。
    • 刚试过ln -sf,按照推荐。在第一行之后,我得到了ln: /usr/local/include//freetype2: Operation not permitted。使用sudo 重复该操作会出现同样的错误。
    • @volvox,尝试使用brew install freetype 安装freetype。
    • @suzanshakya 感谢它完美地工作(一旦我安装了自制软件)。
    【解决方案6】:

    基本上,你需要在安装 PIL 之前安装 freetype。

    如果您在 OS X 上使用 Homebrew,只需:

    brew remove pil
    brew install freetype
    brew install pil
    

    【讨论】:

    • 如果不起作用,请在安装PIL之前添加brew link freetype
    • 对于 macports 用户,该软件包也称为 freetype
    • 我不得不通过brew重新安装freetypelibjpeg,然后使用brew link --overwrite freetypebrew link --overwrite libjpeg重新链接它们,然后重新安装pil,然后它终于工作了。希望这对任何人都有帮助
    • brew install pil 返回错误:ImportError: The _imagingft C module is not installed
    【解决方案7】:

    适用于 Ubuntu 12.10:

    sudo pip uninstall PIL
    sudo apt-get install libfreetype6-dev
    sudo apt-get install python-imaging
    

    【讨论】:

    • 我将第三行从“sudo apt-get install python-imaging”更改为“pip install PIL”,它成功了。
    • 在 debian 上为我工作,注意我已经安装了 libjpeg-dev zlib1g-dev libpng12-dev
    【解决方案8】:

    对于 OS X(我运行的是 10.6,但应该适用于其他系统)我能够使用来自 this post 的建议来解决此错误。基本上你需要安装几个依赖项,然后重新安装 PIL。

    【讨论】:

      【解决方案9】:

      对我来说,到目前为止,这里发布的解决方案都没有奏效。我在这里找到了另一个解决方案:http://codeinthehole.com/writing/how-to-install-pil-on-64-bit-ubuntu-1204/

      首先安装开发包:

      $ sudo apt-get install python-dev libjpeg-dev libfreetype6-dev zlib1g-dev
      

      然后创建一些符号链接:

      $ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
      $ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/
      $ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/
      

      之后 PIL 应该编译得很好:

      $ pip install PIL --upgrade
      

      【讨论】:

        【解决方案10】:

        以下作品在 ubuntu 12.04 上运行:

        pip uninstall PIL
        apt-get install libjpeg-dev
        apt-get install libfreetype6-dev
        apt-get install zlib1g-dev
        apt-get install libpng12-dev
        pip install PIL --upgrade
        

        当您看到“-- JPEG 支持可用”时,这意味着它可以工作。

        但是,如果在编辑 jpeg 图像时仍然无法正常工作,请检查 python 路径!!
        我的python路径错过了'/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/',所以我编辑~/.bashrc在这个文件中添加以下代码:

        export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
        

        然后,终于,它起作用了!

        【讨论】:

          【解决方案11】:

          Ubuntu 11.10 按照多架构规范(例如/usr/lib/i386-linux-gnu)安装 zlib 和 freetype2 库。您可以使用 PIL 设置环境变量,以便它可以找到它们。但是它只适用于 pil-117 标签之外的 PIL 版本。

          export PIL_SETUP_ZLIB_ROOT=/usr/lib/i386-linux-gnu
          export PIL_SETUP_FREETYPE_ROOT=/usr/lib/i386-linux-gnu
          pip install -U PIL
          

          由于您的多架构路径可能不同 (x86-64),因此最好安装 -dev 软件包并使用 pkg-config 检索正确的路径。

          pkg-config --variable=libdir zlib
          pkg-config --variable=libdir freetype2
          

          Barry 在 Pillow 的 setup.py 上给出的另一种方法是使用 dpkg-architecture -qDEB_HOST_MULTIARCH 来获取正确的库目录后缀。

          https://bitbucket.org/effbot/pil-2009-raclette/issue/18

          【讨论】:

            【解决方案12】:

            我使用 homebrew 安装 freetype,我在 /usr/local/lib 中有以下内容:

            libfreetype.6.dylib libfreetype.a libfreetype.dylib

            但通常:

            pip 安装 pil

            不适合我,所以我用了:

            点安装http://effbot.org/downloads/Imaging-1.1.6.tar.gz

            【讨论】:

            • 第二个选项对我有用。谢谢@tc_geophysics
            【解决方案13】:

            在我的 Mac 中,终端中的以下步骤有效:

            $ brew install freetype
            $ sudo pip uninstall pil
            $ sudo pip install pillow
            

            希望它对你有用。祝你好运!

            【讨论】:

            • sudo pip 不会影响全局 pil 而不是虚拟环境 pil?
            【解决方案14】:

            而不是运行:pip install Pillow

            运行:pip install Image

            darwin Big Sur pyenv

            【讨论】:

            • “darwin Big Sur pyenv”是什么意思?
            • @Ruli 这意味着他正在使用 MacOS (darwin),版本是 Big Sur,他的 python 设置是通过 pyenv。
            【解决方案15】:

            【已解决】
            在我的 ubuntu12.04 中,在我使用 apt-get 安装了 python-imaging 之后,它就可以工作了。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-11-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-09-08
              • 2015-01-05
              • 2019-01-01
              • 2021-12-28
              相关资源
              最近更新 更多