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