python枕头(更好的PIL)编码检查bug

时间:2013-07-25 16:31:18

标签: python encoding python-imaging-library isinstance pillow

我刚刚为我的virtualenv安装了一个Pillow包。这样做:

from PIL import Image, ImageFont, ImageDraw
ImageFont.load_path('some_path')

我收到了一个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/net/isilonP/public/rw/homes/cbl_adm/.virtualenvs/chembl_webservices/lib/python2.7/site-packages/PIL/ImageFont.py", line 264, in load_path
    if not isinstance(filename, "utf-8"):
TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types

事实上,如果你查看官方的gihub存储库(https://github.com/python-imaging/Pillow/blob/master/PIL/ImageFont.py#L264),你可以看到这个结构:

if not isinstance(filename, "utf-8"):
    ...

我的问题是:如何用实际有用的东西替换它?

1 个答案:

答案 0 :(得分:2)

有人忽视了对这种方法的测试;正确的咒语是:

if not isinstance(filename, str):
    # ...

因为其余的代码继续将转换为一个str,对于Python 2和Python 3。

在与IRC的维护人员交谈之后,我发了一个pull request

更新:补丁现已合并。