如何解决captcha.image与Pillow的依赖错误:'ImageDraw'无'textsize'属性
问题
在使用captcha.image.ImageCaptcha与Pillow时遇到依赖报错,错误信息如下:
in exection: 'ImageDraw' object has no attribute 'textsize' exc<0> File "C:\Users\farn\anaconda3\envs\TestDragonCondaEnv311_Windows\Lib\site-packages\captcha\image.py", type <class 'AttributeError'>, line 165, in _draw_character: [AttributeError] 'ImageDraw' object has no attribute 'textsize' 0 : <FrameSummary file C:\Users\farn\Documents\prgm\TestDragon\Server\TestDragonPlaygroundServer\src\SvUtil.py, line 6106 in getSvCaptchaImage> 1 : <FrameSummary file C:\Users\farn\anaconda3\envs\TestDragonCondaEnv311_Windows\Lib\site-packages\captcha\image.py, line 45 in generate> 2 : <FrameSummary file C:\Users\farn\anaconda3\envs\TestDragonCondaEnv311_Windows\Lib\site-packages\captcha\image.py, line 228 in generate_image> 3 : <FrameSummary file C:\Users\farn\anaconda3\envs\TestDragonCondaEnv311_Windows\Lib\site-packages\captcha\image.py, line 199 in create_captcha_image> 4 : <FrameSummary file C:\Users\farn\anaconda3\envs\TestDragonCondaEnv311_Windows\Lib\site-packages\captcha\image.py, line 165 in _draw_character> ---<0>------------- somehow! 'ImageDraw' object has no attribute 'textsize' [Thread-7 (process_request_thread)][INFO] 192.168.50.82 - - [07/Nov/2024 00:38:15] "GET /500.html HTTP/1.0" 4
已知Pillow在10.0.0版本中将textsize方法替换为textlength,但报错来自captcha库内部代码,不便修改该库源码,此前环境运行正常,需了解两者兼容的版本组合。
兼容版本组合
- captcha库版本 ≤ 0.4:需搭配 Pillow版本 < 10.0.0(如9.5.0及以下版本),旧版captcha依赖Pillow的
textsize方法,而Pillow 10.0.0移除了该方法。 - 若要使用Pillow 10.0.0及以上版本,需升级captcha到0.5及以上版本,官方已在后续版本中修复了该兼容性问题。
内容的提问来源于stack exchange,提问作者Farn Wang
相关产品推荐
相关产品推荐

