私は枕を使ってfor-loopで矩形を描いています。これは私のデスクトップコンピュータでは機能しましたが、私のラップトップには奇妙な例外があります。枕:Draw.rectangleを使った奇妙な振る舞い
これはコード(短縮)である:
from PIL import Image, ImageDraw
(...)
img = Image.open(sys.argv[1])
rimg = img.copy()
rimg_draw = ImageDraw.Draw(rimg)
(...)
(for-loop)
rimg_draw.rectangle((x1, y1, x2, y2), fill=None, outline=(255, 0, 0))
これは、次の例外スロー:
rimg_draw.rectangle((x1, y1, x2, y2), fill=None, outline=(255, 0, 0))
File "/home/daniel/tensorflow2.7/lib/python2.7/site-packages/PIL/ImageDraw.py", line 203, in rectangle
ink, fill = self._getink(outline, fill)
File "/home/daniel/tensorflow2.7/lib/python2.7/site-packages/PIL/ImageDraw.py", line 124, in _getink
ink = self.draw.draw_ink(ink, self.mode)
TypeError: function takes exactly 1 argument (3 given)
を、私はこのコードが失敗した理由を、理解していない:枕の非常に自身でdocumentationPIL.ImageDraw.Draw.rectangle
が定義されていますとこれらの引数:rectangle(xy, fill=None, outline=None)
。
ドキュメントには、オプションのパラメータfill
とoutline
が明示的に記載されているため、枕は1つの引数しか取らないと不平を言うのはなぜですか?
pip freeze
には、枕のバージョンは3.3.1
と記載されています。
いいえ私は、仮想環境でピロー3.3.1を含め、両方でPython 2.7を使用しています。 OSも同じです(Manjaro、Arch-Fork)。しかし、私は例外を "修正"することができました:私はちょうど枕+ depedenciesを完全に削除し、それを再インストールしました...これは非常に奇妙です、Pythonの例外は、 .. – daniel451