ImportError: cannot import name '_imagingft' from 'PIL' (/home/michi/weewx-venv/lib/python3.12/site-packages/PIL/__init__.py). Did you mean: '_imaging'?

162 views
Skip to first unread message

michael.k...@gmx.at

unread,
Nov 9, 2024, 1:20:55 AM11/9/24
to weewx-user
Hello,

I've installed weewx the pip way in an ubuntu docker image. I'm getting the above error message when the ImageGenerator is run. I think there might be missing packages in the OS, but not really sure, and even if, which packages?

Installed pip packages in the venv:

~$ pip list
Package   Version
--------- -----------
configobj 5.0.9
CT3       3.3.3.post1
ephem     4.1.6
paho-mqtt 2.1.0
pillow    11.0.0
pip       24.0
PyMySQL   1.1.1
pyserial  3.5
pyusb     1.2.1
six       1.16.0
weewx     5.1.0

A log from start to the first archive_interval (no debug set at this time, since I don't think it would provide additional benefit)

2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Initializing weewxd version 5.1.0
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Command line: /home/michi/weewx-venv/bin/weewxd
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Using Python: 3.12.3 (main, Sep 11 2024, 14:17:37) [GCC 13.2.0]
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Located at:   /home/michi/weewx-venv/bin/python3
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Platform:     Linux-4.2.8-armv7l-with-glibc2.39
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Locale:       'C.UTF-8'
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Entry path:   /home/michi/weewx-venv/bin/weewxd
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: WEEWX_ROOT:   /home/michi/weewx-data
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Config file:  /home/michi/weewx-data/weewx.conf
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: User module:  /home/michi/weewx-data/bin/user
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Debug:        0
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: User:         michi
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Group:        michi
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Groups:       sudo michi
2024-11-09 06:52:02 weewxd[22970] INFO weewx.engine: Loading station type GW1000 (user.gw1000)
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000: GatewayDriver: version is 0.6.3
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000:      device address is 10.0.1.85:45000
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000:      poll interval is 10 seconds
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000: GatewayService: version is 0.6.3
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000:      device address is 10.0.1.86:45000
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000:      poll interval is 10 seconds
2024-11-09 06:52:02 weewxd[22970] INFO user.MQTTSubscribe: (Service) Using paho.mqtt 2.1.0
2024-11-09 06:52:02 weewxd[22970] INFO user.MQTTSubscribe: (Service) Version is 3.0.0-rc10
2024-11-09 06:52:02 weewxd[22970] INFO user.MQTTSubscribe: (Service) Log level: 0
2024-11-09 06:52:02 weewxd[22970] INFO user.MQTTSubscribe: (Service) Log debug setting: 0
2024-11-09 06:52:02 weewxd[22970] INFO user.MQTTSubscribe: (Service) Log console: False
2024-11-09 06:52:02 weewxd[22970] INFO user.MQTTSubscribe: (Service) Log file: None
2024-11-09 06:52:02 weewxd[22970] INFO user.MQTTSubscribe: (Service) Not enabled, exiting.
2024-11-09 06:52:02 weewxd[22970] INFO weewx.engine: StdConvert target unit is 0x11
2024-11-09 06:52:02 weewxd[22970] INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
2024-11-09 06:52:02 weewxd[22970] INFO weewx.engine: Archive will use data binding wx_binding
2024-11-09 06:52:02 weewxd[22970] INFO weewx.engine: Record generation will be attempted in 'software'
2024-11-09 06:52:02 weewxd[22970] INFO weewx.engine: Using archive interval of 300 seconds (software record generation)
2024-11-09 06:52:02 weewxd[22970] INFO weewx.restx: StationRegistry: Registration not requested.
2024-11-09 06:52:02 weewxd[22970] INFO weewx.restx: Wunderground: Posting not enabled.
2024-11-09 06:52:02 weewxd[22970] INFO weewx.restx: PWSweather: Posting not enabled.
2024-11-09 06:52:02 weewxd[22970] INFO weewx.restx: CWOP: Posting not enabled.
2024-11-09 06:52:02 weewxd[22970] INFO weewx.restx: WOW: Posting not enabled.
2024-11-09 06:52:02 weewxd[22970] INFO weewx.restx: AWEKAS: Posting not enabled.
2024-11-09 06:52:02 weewxd[22970] INFO user.mqtt: service version is 0.24
2024-11-09 06:52:02 weewxd[22970] INFO user.mqtt: binding to loop
2024-11-09 06:52:02 weewxd[22970] INFO user.mqtt: data_binding is wx_binding
2024-11-09 06:52:02 weewxd[22970] INFO user.mqtt: topic is weather_test
2024-11-09 06:52:02 weewxd[22970] INFO user.mqtt: data will be uploaded to mqtt://10.0.1.90:1883/
2024-11-09 06:52:02 weewxd[22970] INFO weewx.engine: 'pyephem' detected, extended almanac data is available
2024-11-09 06:52:02 weewxd[22970] INFO weewxd: Starting up weewx version 5.1.0
2024-11-09 06:52:02 weewxd[22970] INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
2024-11-09 06:52:02 weewxd[22970] INFO weewx.manager: Starting backfill of daily summaries
2024-11-09 06:52:02 weewxd[22970] INFO weewx.manager: Daily summaries up to date
2024-11-09 06:52:02 weewxd[22970] INFO weewx.engine: Starting main packet loop.
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000: Using 't_rainyear' for rain total
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000: skipping rain measurement of 1922.3: no last rain
2024-11-09 06:52:02 weewxd[22970] INFO user.gw1000: Skipping lightning count of 0: no last count
2024-11-09 06:52:03 weewxd[22970] INFO user.gw1000: Using 't_rainyear' for rain total
2024-11-09 06:52:03 weewxd[22970] INFO user.gw1000: Using 'p_rainyear' for piezo rain total
2024-11-09 06:52:03 weewxd[22970] INFO user.gw1000: skipping rain measurement of 1922.3: no last rain
2024-11-09 06:52:03 weewxd[22970] INFO user.gw1000: skipping piezo rain measurement of 1952.0: no last rain
2024-11-09 06:52:03 weewxd[22970] INFO user.gw1000: Skipping lightning count of 0: no last count
2024-11-09 06:52:03 weewxd[22970] INFO user.mqtt: client established for mqtt://10.0.1.90:1883/
2024-11-09 06:55:16 weewxd[22970] INFO weewx.manager: Added record 2024-11-09 06:55:00 CET (1731131700) to database 'weewx.sdb'
2024-11-09 06:55:16 weewxd[22970] INFO weewx.manager: Added record 2024-11-09 06:55:00 CET (1731131700) to daily summary in 'weewx.sdb'
2024-11-09 06:55:16 weewxd[22970] INFO user.jsonengine: JSONGenerator: Generated 14 data items for Bootstrap-en in 0.10 seconds
2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.imagegenerator.ImageGenerator'
2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****  cannot import name '_imagingft' from 'PIL' (/home/michi/weewx-venv/lib/python3.12/site-packages/PIL/__init__.py)
2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****  Traceback (most recent call last):

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/weewx/reportengine.py", line 248, in run

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      obj.start()

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/weewx/reportengine.py", line 465, in start

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      self.run()

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/weewx/imagegenerator.py", line 37, in run

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      self.gen_images(self.gen_ts)

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/weewx/imagegenerator.py", line 107, in gen_images

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      image = plot.render()

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****              ^^^^^^^^^^^^^

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/weeplot/genplot.py", line 208, in render

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      self._renderBottom(draw)

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/weeplot/genplot.py", line 409, in _renderBottom

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      bottom_label_font = weeplot.utilities.get_font_handle(self.bottom_label_font_path,

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/weeplot/utilities.py", line 585, in get_font_handle

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      font = ImageFont.truetype(fontpath_str,                         # See note 1

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/PIL/ImageFont.py", line 879, in truetype

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      return freetype(font)

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****             ^^^^^^^^^^^^^^

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/PIL/ImageFont.py", line 876, in freetype

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      return FreeTypeFont(font, size, index, encoding, layout_engine)

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/PIL/ImageFont.py", line 227, in __init__

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      raise core.ex

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****    File "/home/michi/weewx-venv/lib/python3.12/site-packages/PIL/ImageFont.py", line 66, in <module>

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****      from . import _imagingft as core

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****  ImportError: cannot import name '_imagingft' from 'PIL' (/home/michi/weewx-venv/lib/python3.12/site-packages/PIL/__init__.py). Did you mean: '_imaging'?

2024-11-09 06:55:17 weewxd[22970] ERROR weewx.reportengine:         ****  Generator terminated

Tom Keffer

unread,
Nov 9, 2024, 9:05:01 AM11/9/24
to weewx...@googlegroups.com
See the section about Pillow in the wiki page on Pip troubleshooting.

--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/weewx-user/60075587-d051-4997-815f-57f29774cb02n%40googlegroups.com.

michael.k...@gmx.at

unread,
Nov 9, 2024, 1:40:37 PM11/9/24
to weewx-user
Thank you, installing the dependencies and reinstalling Pillow solved the problem. I wonder why no search engine pointed me to the wiki page. 

Running WeeWX with the above problem, it crashed with an Out Of Memory Error after a couple of days.

Reply all
Reply to author
Forward
0 new messages